[clang] e5cc3da - [X86][AVX10] Add no-evex512 for MMX intrinsics, NFCI

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 22 05:59:37 PST 2023


Author: Phoebe Wang
Date: 2023-11-22T21:59:30+08:00
New Revision: e5cc3da6a9077548f613eee3aacc5e7b017c81f3

URL: https://github.com/llvm/llvm-project/commit/e5cc3da6a9077548f613eee3aacc5e7b017c81f3
DIFF: https://github.com/llvm/llvm-project/commit/e5cc3da6a9077548f613eee3aacc5e7b017c81f3.diff

LOG: [X86][AVX10] Add no-evex512 for MMX intrinsics, NFCI

Some MMX intrinsics like _mm_setzero_si64 will be called by XMM
intrinsics, so need to propagate no-evex512 there.

Checked locally with a lot of modified tests and no side effect with
this change. No extra test needed for the update.

Added: 
    

Modified: 
    clang/lib/Headers/mmintrin.h

Removed: 
    


################################################################################
diff  --git a/clang/lib/Headers/mmintrin.h b/clang/lib/Headers/mmintrin.h
index 03bac92198ad897..08849f01071aea7 100644
--- a/clang/lib/Headers/mmintrin.h
+++ b/clang/lib/Headers/mmintrin.h
@@ -22,7 +22,9 @@ typedef short __v4hi __attribute__((__vector_size__(8)));
 typedef char __v8qi __attribute__((__vector_size__(8)));
 
 /* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64)))
+#define __DEFAULT_FN_ATTRS                                                     \
+  __attribute__((__always_inline__, __nodebug__, __target__("mmx,no-evex512"), \
+                 __min_vector_width__(64)))
 
 /// Clears the MMX state by setting the state of the x87 stack registers
 ///    to empty.
@@ -31,10 +33,10 @@ typedef char __v8qi __attribute__((__vector_size__(8)));
 ///
 /// This intrinsic corresponds to the <c> EMMS </c> instruction.
 ///
-static __inline__ void  __attribute__((__always_inline__, __nodebug__, __target__("mmx")))
-_mm_empty(void)
-{
-    __builtin_ia32_emms();
+static __inline__ void __attribute__((__always_inline__, __nodebug__,
+                                      __target__("mmx,no-evex512")))
+_mm_empty(void) {
+  __builtin_ia32_emms();
 }
 
 /// Constructs a 64-bit integer vector, setting the lower 32 bits to the


        


More information about the cfe-commits mailing list