https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69504
Bug ID: 69504 Summary: XMM register variable ICE with vector extensions Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: adam at consulting dot net.nz Target Milestone: --- xmm_register_variable_ICE.c: #include <stdint.h> #include <stdio.h> typedef uint8_t u8x16_t __attribute__ ((vector_size (16))); int main(void) { register u8x16_t u8x16 asm ("xmm0"); for (int i=0; i<16; ++i) printf("%d\n", u8x16[i]); return 0; } $ gcc-5 --version gcc-5 (Debian 5.3.1-7) 5.3.1 20160121 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc-5 -O3 xmm_register_variable_ICE.c xmm_register_variable_ICE.c: In function ‘main’: xmm_register_variable_ICE.c:6:5: internal compiler error: in expand_expr_addr_expr_1, at expr.c:7736 int main(void) { ^ 0x669f89 expand_expr_addr_expr_1 ../../src/gcc/expr.c:7736 0xd85886 expand_expr_addr_expr ../../src/gcc/expr.c:7850 0xd85886 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../src/gcc/expr.c:10724 0xd894e0 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../src/gcc/expr.c:8018 0xd894e0 expand_expr ../../src/gcc/expr.h:254 0xd894e0 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../src/gcc/expr.c:8235 0xce38f7 expand_gimple_stmt_1 ../../src/gcc/cfgexpand.c:3462 0xce38f7 expand_gimple_stmt ../../src/gcc/cfgexpand.c:3522 0xcdcb38 expand_gimple_basic_block ../../src/gcc/cfgexpand.c:5534 0xcdcb38 execute ../../src/gcc/cfgexpand.c:6152 Also ICEs with latest Debian snapshot: gcc (Debian 20160105-1) 6.0.0 20160105 (experimental) [trunk revision 232093]