re PR target/66112 (__builtin_mul_overflow for int16_t emits poor code)
authorJakub Jelinek <jakub@redhat.com>
Wed, 13 May 2015 08:09:01 +0000 (10:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 13 May 2015 08:09:01 +0000 (10:09 +0200)
commit3d2def23a5bcc445a4dc8f34d90c0bde639b1a05
tree3def4481fc03fdc1cd9a53992f5c5c648076e50e
parentc1ee2e626ea59d8ba14a1d2f36621a2fe525320a
re PR target/66112 (__builtin_mul_overflow for int16_t emits poor code)

PR target/66112
* config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
Use SWI248 iterator instead of SWI.
(*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
Use eq_attr "alternative" "0" instead of match_test in
length_immediate attribute computation.
(*mulvhi4, *mulvhi4_1): New define_insns.

* gcc.target/i386/pr66112-2.c: New test.

From-SVN: r223116
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr66112-2.c [new file with mode: 0644]