Hi,
On 15 Apr 06:43, H.J. Lu wrote:
> [hjl@gnu-6 gcc]$ /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
> -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/  -mx32 -mtune=slm
>  -fno-diagnostics-show-caret -fdiagnostics-color=never   -Og
> -fschedule-insns -fno-tree-fre -mavx512vbmi
> --param=max-sched-ready-insns=1 -masm=intel -c -o pr70662.o
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/pr70662.c
> /tmp/ccatFXMU.s: Assembler messages:
> /tmp/ccatFXMU.s:240: Error: operand size mismatch for `vpbroadcastd'
> [hjl@gnu-6 gcc]$
> 
>         vpbroadcastd    zmm17{k1}, QWORD PTR [esp+184]
>                                                   ^^^^^^^^ Should be DWORD.
Thanks for catching.

GCC v6 forked 10 mins ago.

Patch in the bottom checked into gcc-5 branch and trunk (v7).

Is it ok to check in to gcc-6 branch?

> 
> H.J.

--
Thanks, K

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 4d2927e..1ffb3b9 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -17264,7 +17264,7 @@
   if (<MODE>mode == V2DFmode)
     return "vpbroadcastq\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}";
 
-  if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 32)
+  if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 4)
     return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, 
%0<mask_operand2>|%0<mask_operand2>, %k1}";
   else
     return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, 
%0<mask_operand2>|%0<mask_operand2>, %q1}";

Reply via email to