@@ -163,18 +163,12 @@ static Value *EmitAMDGCNBallotForExec(CodeGenFunction &CGF, const CallExpr *E,
163163 return Call;
164164}
165165
166- template <unsigned N>
167166llvm::CallInst *EmitAMDGCNImageOverloadedReturnType (clang::CodeGen::CodeGenFunction &CGF,
168167 const clang::CallExpr *E,
169168 unsigned IntrinsicID,
170169 bool IsImageStore) {
171- static_assert (N, " expect non-empty argument" );
172-
173- assert (E->getNumArgs () == N &&
174- " Argument count mismatch with builtin definition" );
175-
176- clang::SmallVector<llvm::Value *, N> Args;
177- for (unsigned I = 0 ; I < N; ++I)
170+ clang::SmallVector<llvm::Value *, 10 > Args;
171+ for (unsigned I = 0 ; I < E->getNumArgs (); ++I)
178172 Args.push_back (CGF.EmitScalarExpr (E->getArg (I)));
179173
180174 llvm::Type *RetTy = CGF.ConvertType (E->getType ());
@@ -709,107 +703,107 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
709703 }
710704 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
711705 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
712- return EmitAMDGCNImageOverloadedReturnType< 5 > (
706+ return EmitAMDGCNImageOverloadedReturnType (
713707 *this , E, Intrinsic::amdgcn_image_load_1d, false );
714708 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
715709 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
716- return EmitAMDGCNImageOverloadedReturnType< 6 > (
710+ return EmitAMDGCNImageOverloadedReturnType (
717711 *this , E, Intrinsic::amdgcn_image_load_1darray, false );
718712 case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
719713 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
720714 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
721- return EmitAMDGCNImageOverloadedReturnType< 6 > (
715+ return EmitAMDGCNImageOverloadedReturnType (
722716 *this , E, Intrinsic::amdgcn_image_load_2d, false );
723717 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
724718 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
725719 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
726- return EmitAMDGCNImageOverloadedReturnType< 7 > (
720+ return EmitAMDGCNImageOverloadedReturnType (
727721 *this , E, Intrinsic::amdgcn_image_load_2darray, false );
728722 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
729723 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
730- return EmitAMDGCNImageOverloadedReturnType< 7 > (
724+ return EmitAMDGCNImageOverloadedReturnType (
731725 *this , E, Intrinsic::amdgcn_image_load_3d, false );
732726 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
733727 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
734- return EmitAMDGCNImageOverloadedReturnType< 7 > (
728+ return EmitAMDGCNImageOverloadedReturnType (
735729 *this , E, Intrinsic::amdgcn_image_load_cube, false );
736730 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
737731 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
738- return EmitAMDGCNImageOverloadedReturnType< 6 > (
732+ return EmitAMDGCNImageOverloadedReturnType (
739733 *this , E, Intrinsic::amdgcn_image_load_mip_1d, false );
740734 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
741735 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
742- return EmitAMDGCNImageOverloadedReturnType< 7 > (
736+ return EmitAMDGCNImageOverloadedReturnType (
743737 *this , E, Intrinsic::amdgcn_image_load_mip_1darray, false );
744738 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
745739 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
746740 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
747- return EmitAMDGCNImageOverloadedReturnType< 7 > (
741+ return EmitAMDGCNImageOverloadedReturnType (
748742 *this , E, Intrinsic::amdgcn_image_load_mip_2d, false );
749743 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
750744 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
751745 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
752- return EmitAMDGCNImageOverloadedReturnType< 8 > (
746+ return EmitAMDGCNImageOverloadedReturnType (
753747 *this , E, Intrinsic::amdgcn_image_load_mip_2darray, false );
754748 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
755749 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
756- return EmitAMDGCNImageOverloadedReturnType< 8 > (
750+ return EmitAMDGCNImageOverloadedReturnType (
757751 *this , E, Intrinsic::amdgcn_image_load_mip_3d, false );
758752 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
759753 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
760- return EmitAMDGCNImageOverloadedReturnType< 8 > (
754+ return EmitAMDGCNImageOverloadedReturnType (
761755 *this , E, Intrinsic::amdgcn_image_load_mip_cube, false );
762756 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
763757 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
764- return EmitAMDGCNImageOverloadedReturnType< 6 > (
758+ return EmitAMDGCNImageOverloadedReturnType (
765759 *this , E, Intrinsic::amdgcn_image_store_1d, true );
766760 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
767761 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
768- return EmitAMDGCNImageOverloadedReturnType< 7 > (
762+ return EmitAMDGCNImageOverloadedReturnType (
769763 *this , E, Intrinsic::amdgcn_image_store_1darray, true );
770764 case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
771765 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
772766 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
773- return EmitAMDGCNImageOverloadedReturnType< 7 > (
767+ return EmitAMDGCNImageOverloadedReturnType (
774768 *this , E, Intrinsic::amdgcn_image_store_2d, true );
775769 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
776770 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
777771 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
778- return EmitAMDGCNImageOverloadedReturnType< 8 > (
772+ return EmitAMDGCNImageOverloadedReturnType (
779773 *this , E, Intrinsic::amdgcn_image_store_2darray, true );
780774 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
781775 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
782- return EmitAMDGCNImageOverloadedReturnType< 8 > (
776+ return EmitAMDGCNImageOverloadedReturnType (
783777 *this , E, Intrinsic::amdgcn_image_store_3d, true );
784778 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
785779 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
786- return EmitAMDGCNImageOverloadedReturnType< 8 > (
780+ return EmitAMDGCNImageOverloadedReturnType (
787781 *this , E, Intrinsic::amdgcn_image_store_cube, true );
788782 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
789783 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
790- return EmitAMDGCNImageOverloadedReturnType< 7 > (
784+ return EmitAMDGCNImageOverloadedReturnType (
791785 *this , E, Intrinsic::amdgcn_image_store_mip_1d, true );
792786 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
793787 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
794- return EmitAMDGCNImageOverloadedReturnType< 8 > (
788+ return EmitAMDGCNImageOverloadedReturnType (
795789 *this , E, Intrinsic::amdgcn_image_store_mip_1darray, true );
796790 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
797791 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
798792 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
799- return EmitAMDGCNImageOverloadedReturnType< 8 > (
793+ return EmitAMDGCNImageOverloadedReturnType (
800794 *this , E, Intrinsic::amdgcn_image_store_mip_2d, true );
801795 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
802796 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
803797 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
804- return EmitAMDGCNImageOverloadedReturnType< 9 > (
798+ return EmitAMDGCNImageOverloadedReturnType (
805799 *this , E, Intrinsic::amdgcn_image_store_mip_2darray, true );
806800 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
807801 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
808- return EmitAMDGCNImageOverloadedReturnType< 9 > (
802+ return EmitAMDGCNImageOverloadedReturnType (
809803 *this , E, Intrinsic::amdgcn_image_store_mip_3d, true );
810804 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
811805 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
812- return EmitAMDGCNImageOverloadedReturnType< 9 > (
806+ return EmitAMDGCNImageOverloadedReturnType (
813807 *this , E, Intrinsic::amdgcn_image_store_mip_cube, true );
814808 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
815809 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
0 commit comments