Compiler output: $ gcc -mno-sse2 testcase.c testcase.c: In function 'foo': testcase.c:6:6: internal compiler error: in copy_to_mode_reg, at explow.c:635 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Tested revisions: r160048 - crash r153685 - crash 4.4 r158133 - crash ----- testcase.c ----- typedef __attribute__((vector_size(16))) char type; extern void bar(type); void foo(type x) { bar(x); } ---------------------- A bit different testcase gives: $ gcc -mno-sse2 testcase2.c testcase2.c: In function 'foo': testcase2.c:4:29: internal compiler error: in emit_move_insn, at expr.c:3428 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. ----- testcase2.c ----- typedef __attribute__((vector_size(16))) char type; extern void bar(type); void foo(void) { type x; bar(x); } -----------------------
Well, "doctor it hurts when I do that ..."
Should not ICE, though.
Appears with arm-iwmmx-linux-uclibcgnueabi-gcc 4.4.5 1.c: #include <mmintrin.h> #include <stdint.h> #include <stdio.h> __m64 do_some(__m64 a, int64_t count) { return _mm_srli_pi16(a, count); } int main() { __m64 a=(__m64)222LL; int64_t b=8; b=(int64_t)do_some(a, b); printf("%lli\n", b); return 0; } $ arm-iwmmx-linux-uclibcgnueabi-gcc 1.c -flax-vector-conversions In file included from 1.c:1: /opt/arm-iwmmx-linux-uclibcgnueabi/lib/gcc/arm-iwmmx-linux-uclibcgnueabi/4.4.5/include/mmintrin.h: In function '_mm_srli_pi16': /opt/arm-iwmmx-linux-uclibcgnueabi/lib/gcc/arm-iwmmx-linux-uclibcgnueabi/4.4.5/include/mmintrin.h:526: internal compiler error: in copy_to_mode_reg, at explow.c:623 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.
Passes with GCC 4.7.1 and with current trunk (r193411). Both test cases from comment #0 do not ICE anymore. The bug from comment #3 is for another target and therefore unrelated.
*** This bug has been marked as a duplicate of bug 47948 ***