#if BR_AES_X86NI
#if BR_AES_X86NI_GCC
+#if BR_AES_X86NI_GCC_OLD
+#pragma GCC push_options
+#pragma GCC target("sse2,sse4.1,aes,pclmul")
+#endif
#include <wmmintrin.h>
#include <cpuid.h>
+#if BR_AES_X86NI_GCC_OLD
+#pragma GCC pop_options
+#endif
#endif
#if BR_AES_X86NI_MSC
#undef MASK
}
+/*
+ * Per-function attributes appear unreliable on old GCC, so we use the
+ * pragma for all remaining functions in this file.
+ */
+#if BR_AES_X86NI_GCC_OLD
+#pragma GCC target("sse2,sse4.1,aes,pclmul")
+#endif
+
BR_TARGET("sse2,aes")
static inline __m128i
expand_step128(__m128i k, __m128i k2)