[Bug target/92437] Unnecessary register duplication of vector constant in x86

2019-11-10 Thread zingaburga+gcc at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92437

--- Comment #2 from zingaburga+gcc at hotmail dot com ---
Thanks for the info Andrew!
Changing the add to `_mm_add_epi64` does seem to eliminate all instances of the
duplication.

[Bug target/92437] Unnecessary register duplication of vector constant in x86

2019-11-10 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92437

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-11-10
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Andrew Pinski  ---
Part of it is because GCC did the conversion to vector unsigned long but then
does not detect the following two const_vect's are the same:
(const_vector:V16QI [
(const_int 99 [0x63]) repeated x16
])

(const_vector:V2DI [
(const_int 7161677110969590627 [0x6363636363636363])
repeated x2
])

(except for the different modes).