aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-03-30 15:29:28 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-03-30 15:29:28 +0200
commitde008ec4d69a5f7e9b75b25dc9e1fa937d65ff80 (patch)
tree114d4d3f583ede4b3fc8714edacc3ca6328e9971 /gcc/gcov.c
parent28c024077899ff4bad1fbce2d38fa8b5709272ef (diff)
downloadgcc-de008ec4d69a5f7e9b75b25dc9e1fa937d65ff80.zip
gcc-de008ec4d69a5f7e9b75b25dc9e1fa937d65ff80.tar.gz
gcc-de008ec4d69a5f7e9b75b25dc9e1fa937d65ff80.tar.bz2
re PR target/80206 (ICE in extract_insn, at recog.c:2327)
PR target/80206 * config/i386/sse.md (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use register as dest whenever it is a MEM not rtx_equal_p to the corresponding dup operand, and when forcing into reg move the reg into the memory afterwards. (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask): Likewise. Use <ssehalfvecmode> instead of <ssequartermode> for the force_reg mode. (avx512vl_vextractf128<mode>): Use register as dest either always when a MEM, or when it is a MEM not rtx_equal_p to the corresponding dup operand, or even not when it is a CONST_VECTOR depending on the mode and lo vs. hi. (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous parens. (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise. (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Likewise. Require that operands[2] is even. (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Remove extraneous parens. Require that operands[2] is a multiple of 4. (vec_extract_lo_<mode><mask_name>): Don't bother testing if operands[0] is a MEM if <mask_applied>, the predicates/constraints disallow memory then. * gcc.target/i386/pr80206.c: New test. From-SVN: r246588
Diffstat (limited to 'gcc/gcov.c')
0 files changed, 0 insertions, 0 deletions