@@ -612,8 +612,10 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
612612 addSamplerArg (1 );
613613 } else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::Prefix) !=
614614 std::string::npos) {
615- if (UnmangledName.find (" evaluate_with_single_reference" ) !=
616- std::string::npos)
615+ if (UnmangledName.find (" evaluate_ipe" ) != std::string::npos)
616+ addSamplerArg (1 );
617+ else if (UnmangledName.find (" evaluate_with_single_reference" ) !=
618+ std::string::npos)
617619 addSamplerArg (2 );
618620 else if (UnmangledName.find (" evaluate_with_multi_reference" ) !=
619621 std::string::npos) {
@@ -637,11 +639,19 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
637639 else if (UnmangledName.find (" set_inter_base_multi_reference_penalty" ) !=
638640 std::string::npos ||
639641 UnmangledName.find (" set_inter_shape_penalty" ) !=
642+ std::string::npos ||
643+ UnmangledName.find (" set_inter_direction_penalty" ) !=
640644 std::string::npos)
641645 addUnsignedArg (0 );
642646 else if (UnmangledName.find (" set_motion_vector_cost_function" ) !=
643647 std::string::npos)
644648 addUnsignedArgs (0 , 2 );
649+ else if (UnmangledName.find (" interlaced_field_polarity" ) !=
650+ std::string::npos)
651+ addUnsignedArg (0 );
652+ else if (UnmangledName.find (" interlaced_field_polarities" ) !=
653+ std::string::npos)
654+ addUnsignedArgs (0 , 1 );
645655 else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::MCEPrefix) !=
646656 std::string::npos) {
647657 if (UnmangledName.find (" get_default" ) != std::string::npos)
@@ -653,15 +663,38 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
653663 else if (UnmangledName.find (" set_single_reference" ) !=
654664 std::string::npos)
655665 addUnsignedArg (1 );
666+ else if (UnmangledName.find (" set_dual_reference" ) != std::string::npos)
667+ addUnsignedArg (2 );
668+ else if (UnmangledName.find (" set_weighted_sad" ) != std::string::npos ||
669+ UnmangledName.find (" set_early_search_termination_threshold" ) !=
670+ std::string::npos)
671+ addUnsignedArg (0 );
656672 else if (UnmangledName.find (" adjust_ref_offset" ) != std::string::npos)
657673 addUnsignedArgs (1 , 3 );
658674 else if (UnmangledName.find (" set_max_motion_vector_count" ) !=
659675 std::string::npos ||
660676 UnmangledName.find (" get_border_reached" ) != std::string::npos)
661677 addUnsignedArg (0 );
678+ else if (UnmangledName.find (" shape_distortions" ) != std::string::npos ||
679+ UnmangledName.find (" shape_motion_vectors" ) !=
680+ std::string::npos ||
681+ UnmangledName.find (" shape_reference_ids" ) !=
682+ std::string::npos) {
683+ if (UnmangledName.find (" single_reference" ) != std::string::npos) {
684+ addUnsignedArg (1 );
685+ EraseSubstring (UnmangledName, " _single_reference" );
686+ } else if (UnmangledName.find (" dual_reference" ) !=
687+ std::string::npos) {
688+ addUnsignedArgs (1 , 2 );
689+ EraseSubstring (UnmangledName, " _dual_reference" );
690+ }
691+ } else if (UnmangledName.find (" ref_window_size" ) != std::string::npos)
692+ addUnsignedArg (0 );
662693 } else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::SICPrefix) !=
663694 std::string::npos) {
664- if (UnmangledName.find (" initialize" ) != std::string::npos)
695+ if (UnmangledName.find (" initialize" ) != std::string::npos ||
696+ UnmangledName.find (" set_intra_luma_shape_penalty" ) !=
697+ std::string::npos)
665698 addUnsignedArg (0 );
666699 else if (UnmangledName.find (" configure_ipe" ) != std::string::npos) {
667700 if (UnmangledName.find (" _luma" ) != std::string::npos) {
@@ -672,7 +705,23 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
672705 addUnsignedArgs (7 , 9 );
673706 EraseSubstring (UnmangledName, " _chroma" );
674707 }
675- }
708+ } else if (UnmangledName.find (" configure_skc" ) != std::string::npos)
709+ addUnsignedArgs (0 , 4 );
710+ else if (UnmangledName.find (" set_skc" ) != std::string::npos) {
711+ if (UnmangledName.find (" forward_transform_enable" ))
712+ addUnsignedArg (0 );
713+ } else if (UnmangledName.find (" set_block" ) != std::string::npos) {
714+ if (UnmangledName.find (" based_raw_skip_sad" ) != std::string::npos)
715+ addUnsignedArg (0 );
716+ } else if (UnmangledName.find (" get_motion_vector_mask" ) !=
717+ std::string::npos) {
718+ addUnsignedArgs (0 , 1 );
719+ } else if (UnmangledName.find (" luma_mode_cost_function" ) !=
720+ std::string::npos)
721+ addUnsignedArgs (0 , 2 );
722+ else if (UnmangledName.find (" chroma_mode_cost_function" ) !=
723+ std::string::npos)
724+ addUnsignedArg (0 );
676725 }
677726 } else if (UnmangledName == " intel_sub_group_shuffle_down" ||
678727 UnmangledName == " intel_sub_group_shuffle_up" ) {
@@ -702,11 +751,14 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
702751 setArgAttr (0 , SPIR::ATTR_CONST);
703752 addUnsignedArg (0 );
704753 }
754+ } else if (UnmangledName.find (" intel_sub_group_media_block_write" ) !=
755+ std::string::npos) {
756+ addUnsignedArg (3 );
705757 }
706758 }
707759 // Auxiliarry information, it is expected that it is relevant at the moment
708760 // the init method is called.
709- Function *F; // SPIRV decorated function
761+ Function *F; // SPIRV decorated function
710762 std::vector<Type *> ArgTypes; // Arguments of OCL builtin
711763};
712764
0 commit comments