https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70525
Bug ID: 70525 Summary: generating 'vpandn' without the mode suffix, gnu as fails to assemble (-mavx512bw) Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: assemble-failure Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Target: x86_64-pc-linux-gnu Created attachment 38174 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38174&action=edit reduced testcase Output: $ gcc -O -mavx512bw testcase.c /tmp/ccuJjUxJ.s: Assembler messages: /tmp/ccuJjUxJ.s:8: Error: operand type mismatch for `vpandn' @@ -5,7 +5,7 @@ foo: .LFB0: .cfi_startproc - vpandn %zmm0, %zmm1, %zmm0 + vpandnq %zmm0, %zmm1, %zmm0 ret .cfi_endproc .LFE0: Fixes the assembly (similar fix applies for the intel syntax). (vpandnd can be used as well) Both the "vpandnq" and "vpandnd" instructions should be available in the "foundation" instruction set with -mavx512f, but -mavx512bw is needed to force generation of the instruction. I will create a missed-optimization for this, unless I am wrong.