[llvm] beed1de - [X86] Use default attributes for more intrinsics

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 4 01:41:48 PDT 2022


Author: Nikita Popov
Date: 2022-11-04T09:41:40+01:00
New Revision: beed1de64d56a95989e9e951b496e228f1d48000

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

LOG: [X86] Use default attributes for more intrinsics

Another followup to D136939, adding default attributes to the
remaining readnone intrinsics.

This also covers some non-readnone intrinsics, because they were
interleaved, and it seemed to make more sense to update them at
the same time.

Differential Revision: https://reviews.llvm.org/D137250

Added: 
    

Modified: 
    llvm/include/llvm/IR/IntrinsicsX86.td

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/IR/IntrinsicsX86.td b/llvm/include/llvm/IR/IntrinsicsX86.td
index 4a836e9e917c4..9ce993446d07e 100644
--- a/llvm/include/llvm/IR/IntrinsicsX86.td
+++ b/llvm/include/llvm/IR/IntrinsicsX86.td
@@ -4370,638 +4370,646 @@ let TargetPrefix = "x86" in {
 let TargetPrefix = "x86" in {
   def int_x86_avx512_conflict_d_128 :
           ClangBuiltin<"__builtin_ia32_vpconflictsi_128">,
-          Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
   def int_x86_avx512_conflict_d_256 :
           ClangBuiltin<"__builtin_ia32_vpconflictsi_256">,
-          Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>;
   def int_x86_avx512_conflict_d_512 :
           ClangBuiltin<"__builtin_ia32_vpconflictsi_512">,
-          Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty],
+                                [IntrNoMem]>;
 
   def int_x86_avx512_conflict_q_128 :
           ClangBuiltin<"__builtin_ia32_vpconflictdi_128">,
-          Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
   def int_x86_avx512_conflict_q_256 :
           ClangBuiltin<"__builtin_ia32_vpconflictdi_256">,
-          Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>;
   def int_x86_avx512_conflict_q_512 :
           ClangBuiltin<"__builtin_ia32_vpconflictdi_512">,
-          Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty], [IntrNoMem]>;
+          DefaultAttrsIntrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty], [IntrNoMem]>;
 }
 
 // Compares
 let TargetPrefix = "x86" in {
   // 512-bit
   def int_x86_avx512_vcomi_sd : ClangBuiltin<"__builtin_ia32_vcomisd">,
-              Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty,
-                         llvm_v2f64_ty, llvm_i32_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<3>>]>;
+      DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v2f64_ty,
+                             llvm_v2f64_ty, llvm_i32_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<3>>]>;
   def int_x86_avx512_vcomi_ss : ClangBuiltin<"__builtin_ia32_vcomiss">,
-              Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty,
-                         llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<3>>]>;
+      DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v4f32_ty,
+                             llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<3>>]>;
 }
 
 // Compress, Expand
 let TargetPrefix = "x86" in {
   def int_x86_avx512_mask_compress :
-        Intrinsic<[llvm_anyvector_ty],
-                  [LLVMMatchType<0>, LLVMMatchType<0>,
-                   LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
-                  [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_anyvector_ty],
+                            [LLVMMatchType<0>, LLVMMatchType<0>,
+                             LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_expand :
-        Intrinsic<[llvm_anyvector_ty],
-                  [LLVMMatchType<0>, LLVMMatchType<0>,
-                   LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
-                  [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_anyvector_ty],
+                            [LLVMMatchType<0>, LLVMMatchType<0>,
+                             LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
+                            [IntrNoMem]>;
 }
 
 // truncate
 let TargetPrefix = "x86" in {
   def int_x86_avx512_mask_pmov_qb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qb_256 :
-          ClangBuiltin<"__builtin_ia32_pmovqb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovqb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qb_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qb_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qb_512 :
-          ClangBuiltin<"__builtin_ia32_pmovqb512_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovqb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qb_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb512_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qb_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb512_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovqw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovqw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qw_512 :
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovqw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qw_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw512_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qw_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw512_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qd_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqd128_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovqd128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_qd_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovqd128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqd128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qd_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd128_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qd_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qd_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd128_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qd_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qd_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovqd256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqd256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qd_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd256_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qd_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qd_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd256_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qd_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qd_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovqd512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovqd512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_qd_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd512_mask">,
-          Intrinsic<[llvm_v8i32_ty],
-                    [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i32_ty],
+                            [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_qd_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsqd512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsqd512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_qd_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd512_mask">,
-          Intrinsic<[llvm_v8i32_ty],
-                    [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i32_ty],
+                            [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_qd_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusqd512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusqd512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_db_128 :
-          ClangBuiltin<"__builtin_ia32_pmovdb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovdb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_db_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovdb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_db_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_db_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_db_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_db_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_db_256 :
-          ClangBuiltin<"__builtin_ia32_pmovdb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovdb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_db_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovdb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_db_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_db_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_db_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_db_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_db_512 :
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_db_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovdb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_db_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb512_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_db_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsdb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_db_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb512_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_db_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusdb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_dw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovdw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovdw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_dw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovdw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_dw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_dw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_dw_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_dw_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_dw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovdw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovdw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_dw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovdw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_dw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_dw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_dw_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw256_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-                    [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v8i16_ty],
+                            [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_dw_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_dw_512 :
-          Intrinsic<[llvm_v16i16_ty],
-                    [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v16i16_ty],
+                            [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_dw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovdw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovdw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_dw_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw512_mask">,
-          Intrinsic<[llvm_v16i16_ty],
-                    [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i16_ty],
+                            [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_dw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovsdw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovsdw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_dw_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw512_mask">,
-          Intrinsic<[llvm_v16i16_ty],
-                    [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i16_ty],
+                            [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_dw_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovusdw512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovusdw512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_wb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovwb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovwb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmov_wb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovwb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovwb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_wb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovswb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_wb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovswb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_wb_128 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb128_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb128_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_wb_mem_128 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb128mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb128mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_wb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovwb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovwb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_wb_256 :
-          ClangBuiltin<"__builtin_ia32_pmovswb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_wb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovswb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                          [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
+                          [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_wb_256 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb256_mask">,
-          Intrinsic<[llvm_v16i8_ty],
-                    [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb256_mask">,
+      DefaultAttrsIntrinsic<[llvm_v16i8_ty],
+                            [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_wb_mem_256 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb256mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb256mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                          [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
+                          [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_wb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovwb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovwb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovs_wb_512 :
-          ClangBuiltin<"__builtin_ia32_pmovswb512_mask">,
-          Intrinsic<[llvm_v32i8_ty],
-                    [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v32i8_ty],
+                            [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovs_wb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovswb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovswb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
+                            [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmovus_wb_512 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb512_mask">,
-          Intrinsic<[llvm_v32i8_ty],
-                    [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty],
-                    [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb512_mask">,
+      DefaultAttrsIntrinsic<[llvm_v32i8_ty],
+                            [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_mask_pmovus_wb_mem_512 :
-          ClangBuiltin<"__builtin_ia32_pmovuswb512mem_mask">,
-          Intrinsic<[],
-                    [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
-                    [IntrArgMemOnly]>;
+      ClangBuiltin<"__builtin_ia32_pmovuswb512mem_mask">,
+      DefaultAttrsIntrinsic<[],
+                            [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty],
+                            [IntrArgMemOnly]>;
 }
 
 // Bitwise ternary logic
 let TargetPrefix = "x86" in {
   def int_x86_avx512_pternlog_d_128 :
-          ClangBuiltin<"__builtin_ia32_pternlogd128">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
-                    [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogd128">,
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty],
+                            [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty,
+                             llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 
   def int_x86_avx512_pternlog_d_256 :
-          ClangBuiltin<"__builtin_ia32_pternlogd256">,
-          Intrinsic<[llvm_v8i32_ty],
-                    [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
-                    [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogd256">,
+      DefaultAttrsIntrinsic<[llvm_v8i32_ty],
+                            [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty,
+                             llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 
   def int_x86_avx512_pternlog_d_512 :
-          ClangBuiltin<"__builtin_ia32_pternlogd512">,
-          Intrinsic<[llvm_v16i32_ty],
-                    [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty,
-                     llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogd512">,
+      DefaultAttrsIntrinsic<[llvm_v16i32_ty],
+                            [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty,
+                             llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 
   def int_x86_avx512_pternlog_q_128 :
-          ClangBuiltin<"__builtin_ia32_pternlogq128">,
-          Intrinsic<[llvm_v2i64_ty],
-                    [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
-                    [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogq128">,
+      DefaultAttrsIntrinsic<[llvm_v2i64_ty],
+                            [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty,
+                             llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 
   def int_x86_avx512_pternlog_q_256 :
-          ClangBuiltin<"__builtin_ia32_pternlogq256">,
-          Intrinsic<[llvm_v4i64_ty],
-                    [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
-                    [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogq256">,
+      DefaultAttrsIntrinsic<[llvm_v4i64_ty],
+                            [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty,
+                             llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 
   def int_x86_avx512_pternlog_q_512 :
-          ClangBuiltin<"__builtin_ia32_pternlogq512">,
-          Intrinsic<[llvm_v8i64_ty],
-                    [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty],
-                    [IntrNoMem, ImmArg<ArgIndex<3>>]>;
+      ClangBuiltin<"__builtin_ia32_pternlogq512">,
+      DefaultAttrsIntrinsic<[llvm_v8i64_ty],
+                            [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty,
+                             llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<3>>]>;
 }
 
 // vp2intersect
 let TargetPrefix = "x86" in {
   def int_x86_avx512_vp2intersect_q_512 :
-          Intrinsic<[llvm_v8i1_ty, llvm_v8i1_ty],
-                    [llvm_v8i64_ty, llvm_v8i64_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v8i1_ty, llvm_v8i1_ty],
+                            [llvm_v8i64_ty, llvm_v8i64_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_vp2intersect_q_256 :
-          Intrinsic<[llvm_v4i1_ty, llvm_v4i1_ty],
-                    [llvm_v4i64_ty, llvm_v4i64_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i1_ty, llvm_v4i1_ty],
+                            [llvm_v4i64_ty, llvm_v4i64_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_vp2intersect_q_128 :
-          Intrinsic<[llvm_v2i1_ty, llvm_v2i1_ty],
-                    [llvm_v2i64_ty, llvm_v2i64_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v2i1_ty, llvm_v2i1_ty],
+                            [llvm_v2i64_ty, llvm_v2i64_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_vp2intersect_d_512 :
-          Intrinsic<[llvm_v16i1_ty, llvm_v16i1_ty],
-                    [llvm_v16i32_ty, llvm_v16i32_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v16i1_ty, llvm_v16i1_ty],
+                            [llvm_v16i32_ty, llvm_v16i32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_vp2intersect_d_256 :
-          Intrinsic<[llvm_v8i1_ty, llvm_v8i1_ty],
-                    [llvm_v8i32_ty, llvm_v8i32_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v8i1_ty, llvm_v8i1_ty],
+                            [llvm_v8i32_ty, llvm_v8i32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512_vp2intersect_d_128 :
-          Intrinsic<[llvm_v4i1_ty, llvm_v4i1_ty],
-                    [llvm_v4i32_ty, llvm_v4i32_ty],
-                    [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i1_ty, llvm_v4i1_ty],
+                            [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
 }
 
 // Misc.
@@ -5009,57 +5017,70 @@ let TargetPrefix = "x86" in {
   // NOTE: These comparison intrinsics are not used by clang as long as the
   //       distinction in signaling behaviour is not implemented.
   def int_x86_avx512_mask_cmp_ps_512 :
-              Intrinsic<[llvm_v16i1_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                         llvm_i32_ty, llvm_v16i1_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>>]>;
+      DefaultAttrsIntrinsic<[llvm_v16i1_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
+                             llvm_i32_ty, llvm_v16i1_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<4>>]>;
   def int_x86_avx512_mask_cmp_pd_512 :
-              Intrinsic<[llvm_v8i1_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                         llvm_i32_ty, llvm_v8i1_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>>]>;
+      DefaultAttrsIntrinsic<[llvm_v8i1_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
+                             llvm_i32_ty, llvm_v8i1_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<4>>]>;
   def int_x86_avx512_mask_cmp_ps_256 :
-              Intrinsic<[llvm_v8i1_ty], [llvm_v8f32_ty, llvm_v8f32_ty,
-                         llvm_i32_ty, llvm_v8i1_ty], [IntrNoMem, ImmArg<ArgIndex<2>>]>;
+      DefaultAttrsIntrinsic<[llvm_v8i1_ty], [llvm_v8f32_ty, llvm_v8f32_ty,
+                             llvm_i32_ty, llvm_v8i1_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>]>;
   def int_x86_avx512_mask_cmp_pd_256 :
-              Intrinsic<[llvm_v4i1_ty], [llvm_v4f64_ty, llvm_v4f64_ty,
-                         llvm_i32_ty, llvm_v4i1_ty], [IntrNoMem, ImmArg<ArgIndex<2>>]>;
+      DefaultAttrsIntrinsic<[llvm_v4i1_ty], [llvm_v4f64_ty, llvm_v4f64_ty,
+                             llvm_i32_ty, llvm_v4i1_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>]>;
   def int_x86_avx512_mask_cmp_ps_128 :
-            Intrinsic<[llvm_v4i1_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
-                       llvm_i32_ty, llvm_v4i1_ty], [IntrNoMem, ImmArg<ArgIndex<2>>]>;
+      DefaultAttrsIntrinsic<[llvm_v4i1_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
+                             llvm_i32_ty, llvm_v4i1_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>]>;
   def int_x86_avx512_mask_cmp_pd_128 :
-            Intrinsic<[llvm_v2i1_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
-                       llvm_i32_ty, llvm_v2i1_ty], [IntrNoMem, ImmArg<ArgIndex<2>>]>;
+      DefaultAttrsIntrinsic<[llvm_v2i1_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
+                             llvm_i32_ty, llvm_v2i1_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>]>;
 
   def int_x86_avx512_mask_cmp_ss :
-        ClangBuiltin<"__builtin_ia32_cmpss_mask">,
-              Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_i32_ty, llvm_i8_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>>]>;
+      ClangBuiltin<"__builtin_ia32_cmpss_mask">,
+      DefaultAttrsIntrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
+                             llvm_i32_ty, llvm_i8_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<4>>]>;
   def int_x86_avx512_mask_cmp_sd :
-        ClangBuiltin<"__builtin_ia32_cmpsd_mask">,
-              Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
-                         llvm_i32_ty, llvm_i8_ty, llvm_i32_ty],
-                        [IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>>]>;
+      ClangBuiltin<"__builtin_ia32_cmpsd_mask">,
+      DefaultAttrsIntrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
+                             llvm_i32_ty, llvm_i8_ty, llvm_i32_ty],
+                            [IntrNoMem, ImmArg<ArgIndex<2>>,
+                             ImmArg<ArgIndex<4>>]>;
 }
 
 //===----------------------------------------------------------------------===//
 // SHA intrinsics
 let TargetPrefix = "x86" in {
   def int_x86_sha1rnds4 : ClangBuiltin<"__builtin_ia32_sha1rnds4">,
-        Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
-                  [IntrNoMem, ImmArg<ArgIndex<2>>]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
+                             llvm_i8_ty], [IntrNoMem, ImmArg<ArgIndex<2>>]>;
   def int_x86_sha1nexte : ClangBuiltin<"__builtin_ia32_sha1nexte">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
   def int_x86_sha1msg1 : ClangBuiltin<"__builtin_ia32_sha1msg1">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
   def int_x86_sha1msg2 : ClangBuiltin<"__builtin_ia32_sha1msg2">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
   def int_x86_sha256rnds2 : ClangBuiltin<"__builtin_ia32_sha256rnds2">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
-                [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
+                             llvm_v4i32_ty], [IntrNoMem]>;
   def int_x86_sha256msg1 : ClangBuiltin<"__builtin_ia32_sha256msg1">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
   def int_x86_sha256msg2 : ClangBuiltin<"__builtin_ia32_sha256msg2">,
-      Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+                            [IntrNoMem]>;
 }
 
 //===----------------------------------------------------------------------===//
@@ -5144,40 +5165,43 @@ let TargetPrefix = "x86" in {
 
 let TargetPrefix = "x86" in {
   def int_x86_avx512bf16_cvtne2ps2bf16_128:
-              ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_128">,
-              Intrinsic<[llvm_v8bf16_ty], [llvm_v4f32_ty, llvm_v4f32_ty],
-              [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_128">,
+      DefaultAttrsIntrinsic<[llvm_v8bf16_ty], [llvm_v4f32_ty, llvm_v4f32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512bf16_cvtne2ps2bf16_256:
-              ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_256">,
-              Intrinsic<[llvm_v16bf16_ty], [llvm_v8f32_ty, llvm_v8f32_ty],
-              [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_256">,
+      DefaultAttrsIntrinsic<[llvm_v16bf16_ty], [llvm_v8f32_ty, llvm_v8f32_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512bf16_cvtne2ps2bf16_512:
-              ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_512">,
-              Intrinsic<[llvm_v32bf16_ty], [llvm_v16f32_ty, llvm_v16f32_ty],
-              [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_cvtne2ps2bf16_512">,
+      DefaultAttrsIntrinsic<[llvm_v32bf16_ty], [llvm_v16f32_ty, llvm_v16f32_ty],
+                            [IntrNoMem]>;
   // Intrinsic must be masked due to it producing less than 128 bits of results.
   def int_x86_avx512bf16_mask_cvtneps2bf16_128:
-              Intrinsic<[llvm_v8bf16_ty],
-                        [llvm_v4f32_ty, llvm_v8bf16_ty, llvm_v4i1_ty],
-                        [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_v8bf16_ty],
+                            [llvm_v4f32_ty, llvm_v8bf16_ty, llvm_v4i1_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512bf16_cvtneps2bf16_256:
-              ClangBuiltin<"__builtin_ia32_cvtneps2bf16_256">,
-              Intrinsic<[llvm_v8bf16_ty], [llvm_v8f32_ty], [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_cvtneps2bf16_256">,
+      DefaultAttrsIntrinsic<[llvm_v8bf16_ty], [llvm_v8f32_ty], [IntrNoMem]>;
   def int_x86_avx512bf16_cvtneps2bf16_512:
-              ClangBuiltin<"__builtin_ia32_cvtneps2bf16_512">,
-              Intrinsic<[llvm_v16bf16_ty], [llvm_v16f32_ty], [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_cvtneps2bf16_512">,
+      DefaultAttrsIntrinsic<[llvm_v16bf16_ty], [llvm_v16f32_ty], [IntrNoMem]>;
   def int_x86_avx512bf16_dpbf16ps_128:
-              ClangBuiltin<"__builtin_ia32_dpbf16ps_128">,
-              Intrinsic<[llvm_v4f32_ty],
-              [llvm_v4f32_ty, llvm_v8bf16_ty, llvm_v8bf16_ty], [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_dpbf16ps_128">,
+      DefaultAttrsIntrinsic<[llvm_v4f32_ty],
+                            [llvm_v4f32_ty, llvm_v8bf16_ty, llvm_v8bf16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512bf16_dpbf16ps_256:
-              ClangBuiltin<"__builtin_ia32_dpbf16ps_256">,
-              Intrinsic<[llvm_v8f32_ty],
-              [llvm_v8f32_ty, llvm_v16bf16_ty, llvm_v16bf16_ty], [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_dpbf16ps_256">,
+      DefaultAttrsIntrinsic<[llvm_v8f32_ty],
+                            [llvm_v8f32_ty, llvm_v16bf16_ty, llvm_v16bf16_ty],
+                            [IntrNoMem]>;
   def int_x86_avx512bf16_dpbf16ps_512:
-              ClangBuiltin<"__builtin_ia32_dpbf16ps_512">,
-              Intrinsic<[llvm_v16f32_ty],
-              [llvm_v16f32_ty, llvm_v32bf16_ty, llvm_v32bf16_ty], [IntrNoMem]>;
+      ClangBuiltin<"__builtin_ia32_dpbf16ps_512">,
+      DefaultAttrsIntrinsic<[llvm_v16f32_ty],
+                            [llvm_v16f32_ty, llvm_v32bf16_ty, llvm_v32bf16_ty],
+                            [IntrNoMem]>;
 }
 
 //===----------------------------------------------------------------------===//
@@ -5354,9 +5378,9 @@ let TargetPrefix = "x86" in {
                          llvm_x86amx_ty, llvm_x86amx_ty,
                          llvm_x86amx_ty], []>;
   def int_x86_cast_vector_to_tile:
-              Intrinsic<[llvm_x86amx_ty], [llvm_anyvector_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_x86amx_ty], [llvm_anyvector_ty], [IntrNoMem]>;
   def int_x86_cast_tile_to_vector:
-              Intrinsic<[llvm_anyvector_ty], [llvm_x86amx_ty], [IntrNoMem]>;
+      DefaultAttrsIntrinsic<[llvm_anyvector_ty], [llvm_x86amx_ty], [IntrNoMem]>;
 }
 
 let TargetPrefix = "x86" in {
@@ -5375,38 +5399,38 @@ def int_x86_cmpccxadd64
 //===----------------------------------------------------------------------===//
 let TargetPrefix = "x86" in {
 // AMX_FP16 - Intel FP16 AMX extensions
-  def int_x86_tdpfp16ps : ClangBuiltin<"__builtin_ia32_tdpfp16ps">,
-                          Intrinsic<[], [llvm_i8_ty, llvm_i8_ty, llvm_i8_ty],
-                                    [ImmArg<ArgIndex<0>>,
-                                    ImmArg<ArgIndex<1>>, ImmArg<ArgIndex<2>>]>;
+def int_x86_tdpfp16ps : ClangBuiltin<"__builtin_ia32_tdpfp16ps">,
+    DefaultAttrsIntrinsic<[], [llvm_i8_ty, llvm_i8_ty, llvm_i8_ty],
+                          [ImmArg<ArgIndex<0>>, ImmArg<ArgIndex<1>>,
+                           ImmArg<ArgIndex<2>>]>;
 def int_x86_vbcstnebf162ps128 : ClangBuiltin<"__builtin_ia32_vbcstnebf162ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vbcstnebf162ps256 : ClangBuiltin<"__builtin_ia32_vbcstnebf162ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vbcstnesh2ps128 : ClangBuiltin<"__builtin_ia32_vbcstnesh2ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vbcstnesh2ps256 : ClangBuiltin<"__builtin_ia32_vbcstnesh2ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneebf162ps128 : ClangBuiltin<"__builtin_ia32_vcvtneebf162ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneebf162ps256 : ClangBuiltin<"__builtin_ia32_vcvtneebf162ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneeph2ps128 : ClangBuiltin<"__builtin_ia32_vcvtneeph2ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneeph2ps256 : ClangBuiltin<"__builtin_ia32_vcvtneeph2ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneobf162ps128 : ClangBuiltin<"__builtin_ia32_vcvtneobf162ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneobf162ps256 : ClangBuiltin<"__builtin_ia32_vcvtneobf162ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneoph2ps128 : ClangBuiltin<"__builtin_ia32_vcvtneoph2ps128">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v4f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneoph2ps256 : ClangBuiltin<"__builtin_ia32_vcvtneoph2ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
+    DefaultAttrsIntrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem]>;
 def int_x86_vcvtneps2bf16128 : ClangBuiltin<"__builtin_ia32_vcvtneps2bf16128">,
-        Intrinsic<[llvm_v8bf16_ty], [llvm_v4f32_ty], [ IntrNoMem ]>;
+    DefaultAttrsIntrinsic<[llvm_v8bf16_ty], [llvm_v4f32_ty], [ IntrNoMem ]>;
 def int_x86_vcvtneps2bf16256 : ClangBuiltin<"__builtin_ia32_vcvtneps2bf16256">,
-        Intrinsic<[llvm_v8bf16_ty], [llvm_v8f32_ty], [ IntrNoMem ]>;
+    DefaultAttrsIntrinsic<[llvm_v8bf16_ty], [llvm_v8f32_ty], [ IntrNoMem ]>;
 }
 //===----------------------------------------------------------------------===//
 // RAO-INT intrinsics
@@ -5448,751 +5472,848 @@ let TargetPrefix = "x86" in {
 let TargetPrefix = "x86" in {
   def int_x86_avx512fp16_add_ph_512
       : ClangBuiltin<"__builtin_ia32_addph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_sub_ph_512
       : ClangBuiltin<"__builtin_ia32_subph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_mul_ph_512
       : ClangBuiltin<"__builtin_ia32_mulph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_div_ph_512
       : ClangBuiltin<"__builtin_ia32_divph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_max_ph_128
       : ClangBuiltin<"__builtin_ia32_maxph128">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty ], [ IntrNoMem ]>;
   def int_x86_avx512fp16_max_ph_256
       : ClangBuiltin<"__builtin_ia32_maxph256">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_max_ph_512
       : ClangBuiltin<"__builtin_ia32_maxph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_min_ph_128
       : ClangBuiltin<"__builtin_ia32_minph128">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty ], [ IntrNoMem ]>;
   def int_x86_avx512fp16_min_ph_256
       : ClangBuiltin<"__builtin_ia32_minph256">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_min_ph_512
       : ClangBuiltin<"__builtin_ia32_minph512">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
 
   def int_x86_avx512fp16_mask_cmp_ph_512
-      : Intrinsic<[ llvm_v32i1_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty, llvm_v32i1_ty,
-                  llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v32i1_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty,
+                                llvm_v32i1_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_cmp_ph_256
-      : Intrinsic<[ llvm_v16i1_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i32_ty, llvm_v16i1_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v16i1_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i32_ty,
+                                llvm_v16i1_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_mask_cmp_ph_128
-      : Intrinsic<[ llvm_v8i1_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty, llvm_v8i1_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v8i1_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty,
+                                llvm_v8i1_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
 
   def int_x86_avx512fp16_mask_add_sh_round
       : ClangBuiltin<"__builtin_ia32_addsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_sub_sh_round
       : ClangBuiltin<"__builtin_ia32_subsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_mul_sh_round
       : ClangBuiltin<"__builtin_ia32_mulsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_div_sh_round
       : ClangBuiltin<"__builtin_ia32_divsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_min_sh_round
       : ClangBuiltin<"__builtin_ia32_minsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_max_sh_round
       : ClangBuiltin<"__builtin_ia32_maxsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_cmp_sh
       : ClangBuiltin<"__builtin_ia32_cmpsh_mask">,
-        Intrinsic<[ llvm_i8_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i8_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>>,
+                                ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_vcomi_sh
       : ClangBuiltin<"__builtin_ia32_vcomish">,
-        Intrinsic<[ llvm_i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>>,
+                                ImmArg<ArgIndex<3>> ]>;
 
   def int_x86_avx512fp16_mask_vcvtph2psx_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2psx128_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v8f16_ty, llvm_v4f32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v8f16_ty, llvm_v4f32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2psx_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2psx256_mask">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2psx_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2psx512_mask">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f32_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtps2phx_128
       : ClangBuiltin<"__builtin_ia32_vcvtps2phx128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4f32_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4f32_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtps2phx_256
       : ClangBuiltin<"__builtin_ia32_vcvtps2phx256_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtps2phx_512
       : ClangBuiltin<"__builtin_ia32_vcvtps2phx512_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f16_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f16_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtpd2ph_128
       : ClangBuiltin<"__builtin_ia32_vcvtpd2ph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v2f64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v2f64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtpd2ph_256
       : ClangBuiltin<"__builtin_ia32_vcvtpd2ph256_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4f64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4f64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtpd2ph_512
       : ClangBuiltin<"__builtin_ia32_vcvtpd2ph512_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f64_ty, llvm_v8f16_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f64_ty, llvm_v8f16_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtph2pd_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2pd128_mask">,
-        Intrinsic<[ llvm_v2f64_ty ],
-                  [ llvm_v8f16_ty, llvm_v2f64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2f64_ty ],
+                              [ llvm_v8f16_ty, llvm_v2f64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2pd_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2pd256_mask">,
-        Intrinsic<[ llvm_v4f64_ty ],
-                  [ llvm_v8f16_ty, llvm_v4f64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f64_ty ],
+                              [ llvm_v8f16_ty, llvm_v4f64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2pd_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2pd512_mask">,
-        Intrinsic<[ llvm_v8f64_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f64_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f64_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtsh2ss_round
       : ClangBuiltin<"__builtin_ia32_vcvtsh2ss_round_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v8f16_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v8f16_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vcvtss2sh_round
       : ClangBuiltin<"__builtin_ia32_vcvtss2sh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v4f32_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v4f32_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vcvtsd2sh_round
       : ClangBuiltin<"__builtin_ia32_vcvtsd2sh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v2f64_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v2f64_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vcvtsh2sd_round
       : ClangBuiltin<"__builtin_ia32_vcvtsh2sd_round_mask">,
-        Intrinsic<[ llvm_v2f64_ty ],
-                  [ llvm_v2f64_ty, llvm_v8f16_ty, llvm_v2f64_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2f64_ty ],
+                              [ llvm_v2f64_ty, llvm_v8f16_ty, llvm_v2f64_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
 
   def int_x86_avx512fp16_mask_vcvtph2w_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2w128_mask">,
-        Intrinsic<[ llvm_v8i16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2w_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2w256_mask">,
-        Intrinsic<[ llvm_v16i16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2w_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2w512_mask">,
-        Intrinsic<[ llvm_v32i16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32i16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvttph2w_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2w128_mask">,
-        Intrinsic<[ llvm_v8i16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2w_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2w256_mask">,
-        Intrinsic<[ llvm_v16i16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2w_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2w512_mask">,
-        Intrinsic<[ llvm_v32i16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32i16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtph2uw_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2uw128_mask">,
-        Intrinsic<[ llvm_v8i16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2uw_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2uw256_mask">,
-        Intrinsic<[ llvm_v16i16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2uw_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2uw512_mask">,
-        Intrinsic<[ llvm_v32i16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32i16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvttph2uw_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2uw128_mask">,
-        Intrinsic<[ llvm_v8i16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2uw_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2uw256_mask">,
-        Intrinsic<[ llvm_v16i16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2uw_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2uw512_mask">,
-        Intrinsic<[ llvm_v32i16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32i16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32i16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
 
   def int_x86_avx512fp16_mask_vcvtph2dq_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2dq128_mask">,
-        Intrinsic<[ llvm_v4i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2dq_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2dq256_mask">,
-        Intrinsic<[ llvm_v8i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2dq_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2dq512_mask">,
-        Intrinsic<[ llvm_v16i32_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i32_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtph2udq_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2udq128_mask">,
-        Intrinsic<[ llvm_v4i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2udq_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2udq256_mask">,
-        Intrinsic<[ llvm_v8i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2udq_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2udq512_mask">,
-        Intrinsic<[ llvm_v16i32_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i32_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtdq2ph_128
       : ClangBuiltin<"__builtin_ia32_vcvtdq2ph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4i32_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4i32_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtudq2ph_128
       : ClangBuiltin<"__builtin_ia32_vcvtudq2ph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4i32_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4i32_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2dq_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2dq128_mask">,
-        Intrinsic<[ llvm_v4i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2dq_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2dq256_mask">,
-        Intrinsic<[ llvm_v8i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2dq_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2dq512_mask">,
-        Intrinsic<[ llvm_v16i32_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i32_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvttph2udq_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2udq128_mask">,
-        Intrinsic<[ llvm_v4i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2udq_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2udq256_mask">,
-        Intrinsic<[ llvm_v8i32_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i32_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2udq_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2udq512_mask">,
-        Intrinsic<[ llvm_v16i32_ty ],
-                  [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16i32_ty ],
+                              [ llvm_v16f16_ty, llvm_v16i32_ty, llvm_i16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
 
   def int_x86_avx512fp16_mask_vcvtqq2ph_128
       : ClangBuiltin<"__builtin_ia32_vcvtqq2ph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v2i64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v2i64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtqq2ph_256
       : ClangBuiltin<"__builtin_ia32_vcvtqq2ph256_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4i64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4i64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2qq_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2qq128_mask">,
-        Intrinsic<[ llvm_v2i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2qq_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2qq256_mask">,
-        Intrinsic<[ llvm_v4i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2qq_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2qq512_mask">,
-        Intrinsic<[ llvm_v8i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvtuqq2ph_128
       : ClangBuiltin<"__builtin_ia32_vcvtuqq2ph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v2i64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v2i64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtuqq2ph_256
       : ClangBuiltin<"__builtin_ia32_vcvtuqq2ph256_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v4i64_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v4i64_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2uqq_128
       : ClangBuiltin<"__builtin_ia32_vcvtph2uqq128_mask">,
-        Intrinsic<[ llvm_v2i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2uqq_256
       : ClangBuiltin<"__builtin_ia32_vcvtph2uqq256_mask">,
-        Intrinsic<[ llvm_v4i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvtph2uqq_512
       : ClangBuiltin<"__builtin_ia32_vcvtph2uqq512_mask">,
-        Intrinsic<[ llvm_v8i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvttph2qq_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2qq128_mask">,
-        Intrinsic<[ llvm_v2i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2qq_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2qq256_mask">,
-        Intrinsic<[ llvm_v4i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2qq_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2qq512_mask">,
-        Intrinsic<[ llvm_v8i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_vcvttph2uqq_128
       : ClangBuiltin<"__builtin_ia32_vcvttph2uqq128_mask">,
-        Intrinsic<[ llvm_v2i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v2i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v2i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2uqq_256
       : ClangBuiltin<"__builtin_ia32_vcvttph2uqq256_mask">,
-        Intrinsic<[ llvm_v4i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v4i64_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vcvttph2uqq_512
       : ClangBuiltin<"__builtin_ia32_vcvttph2uqq512_mask">,
-        Intrinsic<[ llvm_v8i64_ty ],
-                  [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8i64_ty ],
+                              [ llvm_v8f16_ty, llvm_v8i64_ty, llvm_i8_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
 
   def int_x86_avx512fp16_vcvtsh2si32
       : ClangBuiltin<"__builtin_ia32_vcvtsh2si32">,
-        Intrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvtsh2usi32
       : ClangBuiltin<"__builtin_ia32_vcvtsh2usi32">,
-        Intrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvtsh2si64
       : ClangBuiltin<"__builtin_ia32_vcvtsh2si64">,
-        Intrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvtsh2usi64
       : ClangBuiltin<"__builtin_ia32_vcvtsh2usi64">,
-        Intrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvtusi2sh
       : ClangBuiltin<"__builtin_ia32_vcvtusi2sh">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_vcvtusi642sh
       : ClangBuiltin<"__builtin_ia32_vcvtusi642sh">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i64_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i64_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_vcvtsi2sh
       : ClangBuiltin<"__builtin_ia32_vcvtsi2sh">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_vcvtsi642sh
       : ClangBuiltin<"__builtin_ia32_vcvtsi642sh">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i64_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i64_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>> ]>;
   def int_x86_avx512fp16_vcvttsh2si32
       : ClangBuiltin<"__builtin_ia32_vcvttsh2si32">,
-        Intrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvttsh2si64
       : ClangBuiltin<"__builtin_ia32_vcvttsh2si64">,
-        Intrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvttsh2usi32
       : ClangBuiltin<"__builtin_ia32_vcvttsh2usi32">,
-        Intrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i32_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_vcvttsh2usi64
       : ClangBuiltin<"__builtin_ia32_vcvttsh2usi64">,
-        Intrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i64_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
 
   def int_x86_avx512fp16_sqrt_ph_512
-      : Intrinsic<[ llvm_v32f16_ty ], [ llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_sqrt_sh
-      : Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_rsqrt_ph_128
       : ClangBuiltin<"__builtin_ia32_rsqrtph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rsqrt_ph_256
       : ClangBuiltin<"__builtin_ia32_rsqrtph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rsqrt_ph_512
       : ClangBuiltin<"__builtin_ia32_rsqrtph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rsqrt_sh
       : ClangBuiltin<"__builtin_ia32_rsqrtsh_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rcp_ph_128
       : ClangBuiltin<"__builtin_ia32_rcpph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rcp_ph_256
       : ClangBuiltin<"__builtin_ia32_rcpph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rcp_ph_512
       : ClangBuiltin<"__builtin_ia32_rcpph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_rcp_sh
       : ClangBuiltin<"__builtin_ia32_rcpsh_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_reduce_ph_128
       : ClangBuiltin<"__builtin_ia32_reduceph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_reduce_ph_256
       : ClangBuiltin<"__builtin_ia32_reduceph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty,
+                                llvm_i16_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_reduce_ph_512
       : ClangBuiltin<"__builtin_ia32_reduceph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty, llvm_i32_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>>, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty,
+                                llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>>,
+                                ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_reduce_sh
       : ClangBuiltin<"__builtin_ia32_reducesh_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>>, ImmArg<ArgIndex<5>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>>,
+                                ImmArg<ArgIndex<5>> ]>;
   def int_x86_avx512fp16_fpclass_ph_128
-      : Intrinsic<[ llvm_v8i1_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v8i1_ty ], [ llvm_v8f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_fpclass_ph_256
-      : Intrinsic<[ llvm_v16i1_ty ], [ llvm_v16f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v16i1_ty ],
+                              [ llvm_v16f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_fpclass_ph_512
-      : Intrinsic<[ llvm_v32i1_ty ], [ llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v32i1_ty ],
+                              [ llvm_v32f16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_fpclass_sh
       : ClangBuiltin<"__builtin_ia32_fpclasssh_mask">,
-        Intrinsic<[ llvm_i8_ty ], [ llvm_v8f16_ty, llvm_i32_ty, llvm_i8_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_i8_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_i8_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_getexp_ph_128
       : ClangBuiltin<"__builtin_ia32_getexpph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ], [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_getexp_ph_256
       : ClangBuiltin<"__builtin_ia32_getexpph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_getexp_ph_512
       : ClangBuiltin<"__builtin_ia32_getexpph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_mask_getexp_sh
       : ClangBuiltin<"__builtin_ia32_getexpsh128_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_getmant_ph_128
       : ClangBuiltin<"__builtin_ia32_getmantph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_getmant_ph_256
       : ClangBuiltin<"__builtin_ia32_getmantph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty,
+                                llvm_i16_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_getmant_ph_512
       : ClangBuiltin<"__builtin_ia32_getmantph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty, llvm_i32_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>>, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty,
+                                llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>>,
+                                ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_getmant_sh
       : ClangBuiltin<"__builtin_ia32_getmantsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty,
-                    llvm_i8_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<2>>, ImmArg<ArgIndex<5>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_i32_ty,
+                                llvm_v8f16_ty, llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<2>>,
+                                ImmArg<ArgIndex<5>> ]>;
   def int_x86_avx512fp16_mask_rndscale_ph_128
       : ClangBuiltin<"__builtin_ia32_rndscaleph_128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_i32_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_rndscale_ph_256
       : ClangBuiltin<"__builtin_ia32_rndscaleph_256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_i32_ty, llvm_v16f16_ty,
+                                llvm_i16_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>> ]>;
   def int_x86_avx512fp16_mask_rndscale_ph_512
       : ClangBuiltin<"__builtin_ia32_rndscaleph_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty, llvm_i32_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<1>>, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_i32_ty, llvm_v32f16_ty,
+                                llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<1>>,
+                                ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_rndscale_sh
       : ClangBuiltin<"__builtin_ia32_rndscalesh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>>, ImmArg<ArgIndex<5>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>>,
+                                ImmArg<ArgIndex<5>> ]>;
   def int_x86_avx512fp16_mask_scalef_ph_128
       : ClangBuiltin<"__builtin_ia32_scalefph128_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_scalef_ph_256
       : ClangBuiltin<"__builtin_ia32_scalefph256_mask">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_v16f16_ty, llvm_i16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_v16f16_ty,
+                                llvm_i16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_scalef_ph_512
       : ClangBuiltin<"__builtin_ia32_scalefph512_mask">,
-        Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty,
+                                llvm_i32_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_scalef_sh
       : ClangBuiltin<"__builtin_ia32_scalefsh_round_mask">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
 
   def int_x86_avx512fp16_vfmadd_ph_512
-      : Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_vfmaddsub_ph_128
       : ClangBuiltin<"__builtin_ia32_vfmaddsubph">,
-        Intrinsic<[ llvm_v8f16_ty ],
-                  [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f16_ty ],
+                              [ llvm_v8f16_ty, llvm_v8f16_ty, llvm_v8f16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_vfmaddsub_ph_256
       : ClangBuiltin<"__builtin_ia32_vfmaddsubph256">,
-        Intrinsic<[ llvm_v16f16_ty ],
-                  [ llvm_v16f16_ty, llvm_v16f16_ty, llvm_v16f16_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f16_ty ],
+                              [ llvm_v16f16_ty, llvm_v16f16_ty,
+                                llvm_v16f16_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_vfmaddsub_ph_512
-      : Intrinsic<[ llvm_v32f16_ty ],
-                  [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_v32f16_ty ],
+                              [ llvm_v32f16_ty, llvm_v32f16_ty, llvm_v32f16_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
   def int_x86_avx512fp16_vfmadd_f16
-      : Intrinsic<[ llvm_half_ty ],
-                  [ llvm_half_ty, llvm_half_ty, llvm_half_ty, llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
+      : DefaultAttrsIntrinsic<[ llvm_half_ty ],
+                              [ llvm_half_ty, llvm_half_ty, llvm_half_ty,
+                                llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<3>> ]>;
 
   def int_x86_avx512fp16_mask_vfcmadd_cph_128
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph128_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_maskz_vfcmadd_cph_128
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph128_maskz">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfcmadd_cph_256
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph256_mask">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_maskz_vfcmadd_cph_256
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph256_maskz">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfcmadd_cph_512
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph512_mask3">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_maskz_vfcmadd_cph_512
       : ClangBuiltin<"__builtin_ia32_vfcmaddcph512_maskz">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfmadd_cph_128
       : ClangBuiltin<"__builtin_ia32_vfmaddcph128_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_maskz_vfmadd_cph_128
       : ClangBuiltin<"__builtin_ia32_vfmaddcph128_maskz">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfmadd_cph_256
       : ClangBuiltin<"__builtin_ia32_vfmaddcph256_mask">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_maskz_vfmadd_cph_256
       : ClangBuiltin<"__builtin_ia32_vfmaddcph256_maskz">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfmadd_cph_512
       : ClangBuiltin<"__builtin_ia32_vfmaddcph512_mask3">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_maskz_vfmadd_cph_512
       : ClangBuiltin<"__builtin_ia32_vfmaddcph512_maskz">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfmadd_csh
       : ClangBuiltin<"__builtin_ia32_vfmaddcsh_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_maskz_vfmadd_csh
       : ClangBuiltin<"__builtin_ia32_vfmaddcsh_maskz">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfcmadd_csh
       : ClangBuiltin<"__builtin_ia32_vfcmaddcsh_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_maskz_vfcmadd_csh
       : ClangBuiltin<"__builtin_ia32_vfcmaddcsh_maskz">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfmul_cph_128
       : ClangBuiltin<"__builtin_ia32_vfmulcph128_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfcmul_cph_128
       : ClangBuiltin<"__builtin_ia32_vfcmulcph128_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfmul_cph_256
       : ClangBuiltin<"__builtin_ia32_vfmulcph256_mask">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfcmul_cph_256
       : ClangBuiltin<"__builtin_ia32_vfcmulcph256_mask">,
-        Intrinsic<[ llvm_v8f32_ty ],
-                  [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty ],
-                  [ IntrNoMem ]>;
+        DefaultAttrsIntrinsic<[ llvm_v8f32_ty ],
+                              [ llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,
+                                llvm_i8_ty ],
+                              [ IntrNoMem ]>;
   def int_x86_avx512fp16_mask_vfmul_cph_512
       : ClangBuiltin<"__builtin_ia32_vfmulcph512_mask">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfcmul_cph_512
       : ClangBuiltin<"__builtin_ia32_vfcmulcph512_mask">,
-        Intrinsic<[ llvm_v16f32_ty ],
-                  [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v16f32_ty ],
+                              [ llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,
+                                llvm_i16_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfmul_csh
       : ClangBuiltin<"__builtin_ia32_vfmulcsh_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
   def int_x86_avx512fp16_mask_vfcmul_csh
       : ClangBuiltin<"__builtin_ia32_vfcmulcsh_mask">,
-        Intrinsic<[ llvm_v4f32_ty ],
-                  [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty,
-                    llvm_i32_ty ],
-                  [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
+        DefaultAttrsIntrinsic<[ llvm_v4f32_ty ],
+                              [ llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
+                                llvm_i8_ty, llvm_i32_ty ],
+                              [ IntrNoMem, ImmArg<ArgIndex<4>> ]>;
 }


        


More information about the llvm-commits mailing list