https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105139
Bug ID: 105139 Summary: GCC produces vmovw instruction with an incorrect argument for -O3 -march=sapphirerapids Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vsevolod.livinskiy at gmail dot com Target Milestone: --- Link to the Compiler Explorer: https://godbolt.org/z/9GTPqWfn8 It looks like GCC produced vmovw instruction with an incorrect argument (https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html) Reproducer: extern long c[]; extern int d[]; long a; long e(long f) { return f < a ? f : a; } void g() { for (signed b = 0; b < 4028643; b++) d[b] = e((char)(~c[b])); } Error: >$ g++ -O3 -march=sapphirerapids -c func.cpp /tmp/ccB2zLYr.s: Assembler messages: /tmp/ccB2zLYr.s:92: Error: operand type mismatch for `vmovw' gcc version 12.0.1 20220401 (git://gcc.gnu.org/git/gcc.git:master 15d683d4f0b390b27c54a7c92c6e4f33195bdc93) P.S. I'm not sure if "tree-optimization" is the correct classification for this fault