https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77270
Bug ID: 77270 Summary: Flag -mprftchw is shared with 3dnow for -march=k8 Product: gcc Version: 6.1.0 URL: https://gcc.gnu.org/ml/gcc/2016-05/msg00000.html Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: nightstrike at gmail dot com CC: ubizjak at gmail dot com, venkataramanan.kumar at amd dot com Target Milestone: --- See https://gcc.gnu.org/ml/gcc/2016-05/msg00000.html Using -march=native on a k8 platform does not add -mprfchw to the options list, while using -march=k8 on a different platform does add the switch. From Venkataramanan: > 3DNow! instruction extensions = true > 3DNow! instructions = true It has 3Dnow support. "prefetchw" is available with 3dnow. > misaligned SSE mode = false > 3DNow! PREFETCH/PREFETCHW instructions = false It does not have 3DNowprefetch enabling ISA flag -mprftchw is not correct for -march=k8. > OS visible workaround = false > instruction based sampling = false I think we need to file bug for this. Need to check with Uros why the flag -mprfchw is shared with 3dnow. To work around this issue you can use -mno-prfchw when building with -march=k8.