From: Kirill Yukhin Date: Fri, 18 Mar 2016 11:36:30 +0000 (+0000) Subject: sse.md: Use vpbroadcastq for broadcasting DF values to 128b regs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8d200fad9c7f0217c2a45e5a9666e2ca5d824442;p=gcc.git sse.md: Use vpbroadcastq for broadcasting DF values to 128b regs. gcc/ * config/i386/sse.md: Use vpbroadcastq for broadcasting DF values to 128b regs. From-SVN: r234325 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 11a2a2d07dd..5be50b76802 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-03-18 Kirill Yukhin + + * config/i386/sse.md: Use vpbroadcastq for broadcasting DF + values to 128b regs. + 2016-03-18 Ilya Enkovich PR tree-optimization/70252 diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 3c521b367f9..b25c2465ebf 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -17269,7 +17269,14 @@ (match_operand: 1 "nonimmediate_operand" "vm") (parallel [(const_int 0)]))))] "TARGET_AVX512F" - "vbroadcast\t{%1, %0|%0, %1}" +{ + /* There is no DF broadcast (in AVX-512*) to 128b register. + Mimic it with integer variant. */ + if (mode == V2DFmode) + return "vpbroadcastq\t{%1, %0|%0, %1}"; + else + return "vbroadcast\t{%1, %0|%0, %1}"; +} [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")])