@@ -612,8 +612,10 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
612
612
addSamplerArg (1 );
613
613
} else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::Prefix) !=
614
614
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)
617
619
addSamplerArg (2 );
618
620
else if (UnmangledName.find (" evaluate_with_multi_reference" ) !=
619
621
std::string::npos) {
@@ -637,11 +639,19 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
637
639
else if (UnmangledName.find (" set_inter_base_multi_reference_penalty" ) !=
638
640
std::string::npos ||
639
641
UnmangledName.find (" set_inter_shape_penalty" ) !=
642
+ std::string::npos ||
643
+ UnmangledName.find (" set_inter_direction_penalty" ) !=
640
644
std::string::npos)
641
645
addUnsignedArg (0 );
642
646
else if (UnmangledName.find (" set_motion_vector_cost_function" ) !=
643
647
std::string::npos)
644
648
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 );
645
655
else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::MCEPrefix) !=
646
656
std::string::npos) {
647
657
if (UnmangledName.find (" get_default" ) != std::string::npos)
@@ -653,15 +663,38 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
653
663
else if (UnmangledName.find (" set_single_reference" ) !=
654
664
std::string::npos)
655
665
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 );
656
672
else if (UnmangledName.find (" adjust_ref_offset" ) != std::string::npos)
657
673
addUnsignedArgs (1 , 3 );
658
674
else if (UnmangledName.find (" set_max_motion_vector_count" ) !=
659
675
std::string::npos ||
660
676
UnmangledName.find (" get_border_reached" ) != std::string::npos)
661
677
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 );
662
693
} else if (UnmangledName.find (kOCLSubgroupsAVCIntel ::SICPrefix) !=
663
694
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)
665
698
addUnsignedArg (0 );
666
699
else if (UnmangledName.find (" configure_ipe" ) != std::string::npos) {
667
700
if (UnmangledName.find (" _luma" ) != std::string::npos) {
@@ -672,7 +705,23 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
672
705
addUnsignedArgs (7 , 9 );
673
706
EraseSubstring (UnmangledName, " _chroma" );
674
707
}
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 );
676
725
}
677
726
} else if (UnmangledName == " intel_sub_group_shuffle_down" ||
678
727
UnmangledName == " intel_sub_group_shuffle_up" ) {
@@ -702,11 +751,14 @@ class OCLBuiltinFuncMangleInfo : public SPIRV::BuiltinFuncMangleInfo {
702
751
setArgAttr (0 , SPIR::ATTR_CONST);
703
752
addUnsignedArg (0 );
704
753
}
754
+ } else if (UnmangledName.find (" intel_sub_group_media_block_write" ) !=
755
+ std::string::npos) {
756
+ addUnsignedArg (3 );
705
757
}
706
758
}
707
759
// Auxiliarry information, it is expected that it is relevant at the moment
708
760
// the init method is called.
709
- Function *F; // SPIRV decorated function
761
+ Function *F; // SPIRV decorated function
710
762
std::vector<Type *> ArgTypes; // Arguments of OCL builtin
711
763
};
712
764
0 commit comments