[Bug target/79565] ICE in copy_to_mode_reg, at explow.c:612
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79565 Jakub Jelinek changed: What|Removed |Added Status|WAITING |RESOLVED Resolution|--- |FIXED --- Comment #4 from Jakub Jelinek --- Should be fixed now.
[Bug target/79565] ICE in copy_to_mode_reg, at explow.c:612
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79565 --- Comment #3 from Jakub Jelinek --- Author: jakub Date: Tue Oct 10 20:06:33 2017 New Revision: 253609 URL: https://gcc.gnu.org/viewcvs?rev=253609=gcc=rev Log: PR target/79565 PR target/82483 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq, __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi. (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly to OPTION_MASK_ISA_AVX512VL - builtins that have both OPTION_MASK_ISA_MMX and some other bit set require both mmx and the ISAs without the mmx bit. * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi, __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps, __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw, __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub, __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb, __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi, __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd, __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw, __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd, __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd, __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw, __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb, __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq, __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr): Add OPTION_MASK_ISA_MMX. * gcc.target/i386/pr82483-1.c: New test. * gcc.target/i386/pr82483-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr82483-1.c trunk/gcc/testsuite/gcc.target/i386/pr82483-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386-builtin.def trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug target/79565] ICE in copy_to_mode_reg, at explow.c:612
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79565 --- Comment #2 from H.J. Lu --- Created attachment 41959 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41959=edit A patch I got [hjl@gnu-6 pr79565]$ cat x.i typedef float a __attribute__ ((__vector_size__ (16))); a b, d; int __attribute__ ((__vector_size__ (2 * sizeof (int c; void e () { d = __builtin_ia32_cvtpi2ps (b, c); } [hjl@gnu-6 pr79565]$ make x.s /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -mno-mmx -S -o x.s x.i x.i: In function ‘e’: x.i:4:17: error: ‘__builtin_ia32_cvtpi2ps’ needs isa option -m32 -msse -mmmx void e () { d = __builtin_ia32_cvtpi2ps (b, c); } ^~ make: *** [Makefile:21: x.s] Error 1 [hjl@gnu-6 pr79565]$ cat y.i typedef short v4hi __attribute__ ((__vector_size__ (4 * sizeof (short; v4hi a, b, c; void foo (void) { a = __builtin_ia32_psubusw (b, c); } [hjl@gnu-6 pr79565]$ make y.s /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -mno-mmx -S -o y.s y.i y.i: In function ‘foo’: y.i:6:7: error: ‘__builtin_ia32_psubusw’ needs isa option -m32 -mmmx a = __builtin_ia32_psubusw (b, c); ^ make: *** [Makefile:21: y.s] Error 1 [hjl@gnu-6 pr79565]$
[Bug target/79565] ICE in copy_to_mode_reg, at explow.c:612
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79565 H.J. Lu changed: What|Removed |Added Status|NEW |WAITING --- Comment #1 from H.J. Lu --- (In reply to Martin Liška from comment #0) > All releases I have suffer from: > > Clang is also broken, ICC work for that test-case. What does ICC generate with -mno-mmx -O0?
[Bug target/79565] ICE in copy_to_mode_reg, at explow.c:612
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79565 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-08-08 Ever confirmed|0 |1