This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49411] [4.6/4.7] ICE: unrecognizable insn with -mxop in _mm_roti_epi8 with negative number
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 18 Jun 2011 06:43:44 +0000
- Subject: [Bug target/49411] [4.6/4.7] ICE: unrecognizable insn with -mxop in _mm_roti_epi8 with negative number
- Auto-submitted: auto-generated
- References: <bug-49411-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49411
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-18 06:43:41 UTC ---
Author: jakub
Date: Sat Jun 18 06:43:38 2011
New Revision: 175165
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175165
Log:
PR target/49411
* config/i386/i386.c (ix86_expand_multi_arg_builtins): If
last_arg_constant and last argument doesn't match its predicate,
for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
(ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
spelling of error message.
* config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
const_0_to_255_operand instead of const_int_operand.
Revert:
2011-05-09 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (blendbits): Remove mode attribute.
(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
instead of const_0_to_<blendbits>_operand for operand 3 predicate.
Check integer value of operand 3 in insn constraint.
* gcc.target/i386/testimm-1.c: New test.
* gcc.target/i386/testimm-2.c: New test.
* gcc.target/i386/testimm-3.c: New test.
* gcc.target/i386/testimm-4.c: New test.
* gcc.target/i386/testimm-5.c: New test.
* gcc.target/i386/testimm-6.c: New test.
* gcc.target/i386/testimm-7.c: New test.
* gcc.target/i386/testimm-8.c: New test.
* gcc.target/i386/xop-vpermil2px-2.c: New test.
* gcc.target/i386/xop-rotate1-int.c: New test.
* gcc.target/i386/xop-rotate2-int.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/i386/testimm-1.c
trunk/gcc/testsuite/gcc.target/i386/testimm-2.c
trunk/gcc/testsuite/gcc.target/i386/testimm-3.c
trunk/gcc/testsuite/gcc.target/i386/testimm-4.c
trunk/gcc/testsuite/gcc.target/i386/testimm-5.c
trunk/gcc/testsuite/gcc.target/i386/testimm-6.c
trunk/gcc/testsuite/gcc.target/i386/testimm-7.c
trunk/gcc/testsuite/gcc.target/i386/testimm-8.c
trunk/gcc/testsuite/gcc.target/i386/xop-rotate1-int.c
trunk/gcc/testsuite/gcc.target/i386/xop-rotate2-int.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog