GCC (and clang) support __attribute__((__target__("bmi2"))), ICC doesn't, which can cause compile failures due to ICC masquerading as GCC (defining __GNUC__ and friends).
Reproducible by simply adding the attribute to a function, for example:
_attribute__((__target__("bmi2"))) int main (void) { return 0; }
Will trigger something like
icc (ICC) 17.0.1 20161005 Copyright (C) 1985-2016 Intel Corporation. All rights reserved. bmi2.c(1): warning #3550: target attribute not recognized __attribute__((__target__("bmi2"))) ^
Thread Topic:
Bug Report