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
This commit is contained in:
Kirill Yukhin 2016-03-18 11:36:30 +00:00 committed by Kirill Yukhin
parent 5e8d6dff27
commit 8d200fad9c
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
* config/i386/sse.md: Use vpbroadcastq for broadcasting DF
values to 128b regs.
2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
PR tree-optimization/70252

View File

@ -17269,7 +17269,14 @@
(match_operand:<ssexmmmode> 1 "nonimmediate_operand" "vm")
(parallel [(const_int 0)]))))]
"TARGET_AVX512F"
"v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
{
/* There is no DF broadcast (in AVX-512*) to 128b register.
Mimic it with integer variant. */
if (<MODE>mode == V2DFmode)
return "vpbroadcastq\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}";
else
return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}";
}
[(set_attr "type" "ssemov")
(set_attr "prefix" "evex")
(set_attr "mode" "<sseinsnmode>")])