@@ -163,18 +163,12 @@ static Value *EmitAMDGCNBallotForExec(CodeGenFunction &CGF, const CallExpr *E,
163
163
return Call;
164
164
}
165
165
166
- template <unsigned N>
167
166
llvm::CallInst *EmitAMDGCNImageOverloadedReturnType (clang::CodeGen::CodeGenFunction &CGF,
168
167
const clang::CallExpr *E,
169
168
unsigned IntrinsicID,
170
169
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)
178
172
Args.push_back (CGF.EmitScalarExpr (E->getArg (I)));
179
173
180
174
llvm::Type *RetTy = CGF.ConvertType (E->getType ());
@@ -709,107 +703,107 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
709
703
}
710
704
case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
711
705
case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
712
- return EmitAMDGCNImageOverloadedReturnType< 5 > (
706
+ return EmitAMDGCNImageOverloadedReturnType (
713
707
*this , E, Intrinsic::amdgcn_image_load_1d, false );
714
708
case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
715
709
case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
716
- return EmitAMDGCNImageOverloadedReturnType< 6 > (
710
+ return EmitAMDGCNImageOverloadedReturnType (
717
711
*this , E, Intrinsic::amdgcn_image_load_1darray, false );
718
712
case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
719
713
case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
720
714
case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
721
- return EmitAMDGCNImageOverloadedReturnType< 6 > (
715
+ return EmitAMDGCNImageOverloadedReturnType (
722
716
*this , E, Intrinsic::amdgcn_image_load_2d, false );
723
717
case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
724
718
case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
725
719
case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
726
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
720
+ return EmitAMDGCNImageOverloadedReturnType (
727
721
*this , E, Intrinsic::amdgcn_image_load_2darray, false );
728
722
case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
729
723
case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
730
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
724
+ return EmitAMDGCNImageOverloadedReturnType (
731
725
*this , E, Intrinsic::amdgcn_image_load_3d, false );
732
726
case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
733
727
case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
734
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
728
+ return EmitAMDGCNImageOverloadedReturnType (
735
729
*this , E, Intrinsic::amdgcn_image_load_cube, false );
736
730
case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
737
731
case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
738
- return EmitAMDGCNImageOverloadedReturnType< 6 > (
732
+ return EmitAMDGCNImageOverloadedReturnType (
739
733
*this , E, Intrinsic::amdgcn_image_load_mip_1d, false );
740
734
case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
741
735
case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
742
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
736
+ return EmitAMDGCNImageOverloadedReturnType (
743
737
*this , E, Intrinsic::amdgcn_image_load_mip_1darray, false );
744
738
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
745
739
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
746
740
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
747
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
741
+ return EmitAMDGCNImageOverloadedReturnType (
748
742
*this , E, Intrinsic::amdgcn_image_load_mip_2d, false );
749
743
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
750
744
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
751
745
case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
752
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
746
+ return EmitAMDGCNImageOverloadedReturnType (
753
747
*this , E, Intrinsic::amdgcn_image_load_mip_2darray, false );
754
748
case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
755
749
case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
756
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
750
+ return EmitAMDGCNImageOverloadedReturnType (
757
751
*this , E, Intrinsic::amdgcn_image_load_mip_3d, false );
758
752
case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
759
753
case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
760
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
754
+ return EmitAMDGCNImageOverloadedReturnType (
761
755
*this , E, Intrinsic::amdgcn_image_load_mip_cube, false );
762
756
case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
763
757
case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
764
- return EmitAMDGCNImageOverloadedReturnType< 6 > (
758
+ return EmitAMDGCNImageOverloadedReturnType (
765
759
*this , E, Intrinsic::amdgcn_image_store_1d, true );
766
760
case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
767
761
case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
768
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
762
+ return EmitAMDGCNImageOverloadedReturnType (
769
763
*this , E, Intrinsic::amdgcn_image_store_1darray, true );
770
764
case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
771
765
case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
772
766
case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
773
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
767
+ return EmitAMDGCNImageOverloadedReturnType (
774
768
*this , E, Intrinsic::amdgcn_image_store_2d, true );
775
769
case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
776
770
case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
777
771
case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
778
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
772
+ return EmitAMDGCNImageOverloadedReturnType (
779
773
*this , E, Intrinsic::amdgcn_image_store_2darray, true );
780
774
case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
781
775
case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
782
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
776
+ return EmitAMDGCNImageOverloadedReturnType (
783
777
*this , E, Intrinsic::amdgcn_image_store_3d, true );
784
778
case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
785
779
case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
786
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
780
+ return EmitAMDGCNImageOverloadedReturnType (
787
781
*this , E, Intrinsic::amdgcn_image_store_cube, true );
788
782
case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
789
783
case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
790
- return EmitAMDGCNImageOverloadedReturnType< 7 > (
784
+ return EmitAMDGCNImageOverloadedReturnType (
791
785
*this , E, Intrinsic::amdgcn_image_store_mip_1d, true );
792
786
case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
793
787
case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
794
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
788
+ return EmitAMDGCNImageOverloadedReturnType (
795
789
*this , E, Intrinsic::amdgcn_image_store_mip_1darray, true );
796
790
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
797
791
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
798
792
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
799
- return EmitAMDGCNImageOverloadedReturnType< 8 > (
793
+ return EmitAMDGCNImageOverloadedReturnType (
800
794
*this , E, Intrinsic::amdgcn_image_store_mip_2d, true );
801
795
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
802
796
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
803
797
case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
804
- return EmitAMDGCNImageOverloadedReturnType< 9 > (
798
+ return EmitAMDGCNImageOverloadedReturnType (
805
799
*this , E, Intrinsic::amdgcn_image_store_mip_2darray, true );
806
800
case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
807
801
case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
808
- return EmitAMDGCNImageOverloadedReturnType< 9 > (
802
+ return EmitAMDGCNImageOverloadedReturnType (
809
803
*this , E, Intrinsic::amdgcn_image_store_mip_3d, true );
810
804
case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
811
805
case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
812
- return EmitAMDGCNImageOverloadedReturnType< 9 > (
806
+ return EmitAMDGCNImageOverloadedReturnType (
813
807
*this , E, Intrinsic::amdgcn_image_store_mip_cube, true );
814
808
case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
815
809
case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
0 commit comments