Skip to content

Commit 6d1caca

Browse files
Refactor internal switch cases
Differential Revision: D72248082 Pull Request resolved: #9802
1 parent d020a0d commit 6d1caca

File tree

1 file changed

+72
-114
lines changed

1 file changed

+72
-114
lines changed

runtime/core/exec_aten/util/scalar_type_util.h

+72-114
Original file line numberDiff line numberDiff line change
@@ -921,55 +921,7 @@ struct promote_types {
921921
} \
922922
}()
923923

924-
#define ET_INTERNAL_SWITCH_CASE_ALL_TYPES(CTYPE_ALIAS, ...) \
925-
ET_INTERNAL_SWITCH_CASE( \
926-
::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, __VA_ARGS__) \
927-
ET_INTERNAL_SWITCH_CASE( \
928-
::executorch::aten::ScalarType::Char, CTYPE_ALIAS, __VA_ARGS__) \
929-
ET_INTERNAL_SWITCH_CASE( \
930-
::executorch::aten::ScalarType::Short, CTYPE_ALIAS, __VA_ARGS__) \
931-
ET_INTERNAL_SWITCH_CASE( \
932-
::executorch::aten::ScalarType::Int, CTYPE_ALIAS, __VA_ARGS__) \
933-
ET_INTERNAL_SWITCH_CASE( \
934-
::executorch::aten::ScalarType::Long, CTYPE_ALIAS, __VA_ARGS__) \
935-
ET_INTERNAL_SWITCH_CASE( \
936-
::executorch::aten::ScalarType::Half, CTYPE_ALIAS, __VA_ARGS__) \
937-
ET_INTERNAL_SWITCH_CASE( \
938-
::executorch::aten::ScalarType::Float, CTYPE_ALIAS, __VA_ARGS__) \
939-
ET_INTERNAL_SWITCH_CASE( \
940-
::executorch::aten::ScalarType::Double, CTYPE_ALIAS, __VA_ARGS__) \
941-
ET_INTERNAL_SWITCH_CASE( \
942-
::executorch::aten::ScalarType::ComplexHalf, CTYPE_ALIAS, __VA_ARGS__) \
943-
ET_INTERNAL_SWITCH_CASE( \
944-
::executorch::aten::ScalarType::ComplexFloat, CTYPE_ALIAS, __VA_ARGS__) \
945-
ET_INTERNAL_SWITCH_CASE( \
946-
::executorch::aten::ScalarType::ComplexDouble, CTYPE_ALIAS, __VA_ARGS__) \
947-
ET_INTERNAL_SWITCH_CASE( \
948-
::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, __VA_ARGS__) \
949-
ET_INTERNAL_SWITCH_CASE( \
950-
::executorch::aten::ScalarType::QInt8, CTYPE_ALIAS, __VA_ARGS__) \
951-
ET_INTERNAL_SWITCH_CASE( \
952-
::executorch::aten::ScalarType::QUInt8, CTYPE_ALIAS, __VA_ARGS__) \
953-
ET_INTERNAL_SWITCH_CASE( \
954-
::executorch::aten::ScalarType::QInt32, CTYPE_ALIAS, __VA_ARGS__) \
955-
ET_INTERNAL_SWITCH_CASE( \
956-
::executorch::aten::ScalarType::BFloat16, CTYPE_ALIAS, __VA_ARGS__) \
957-
ET_INTERNAL_SWITCH_CASE( \
958-
::executorch::aten::ScalarType::QUInt4x2, CTYPE_ALIAS, __VA_ARGS__) \
959-
ET_INTERNAL_SWITCH_CASE( \
960-
::executorch::aten::ScalarType::QUInt2x4, CTYPE_ALIAS, __VA_ARGS__) \
961-
ET_INTERNAL_SWITCH_CASE( \
962-
::executorch::aten::ScalarType::Bits1x8, CTYPE_ALIAS, __VA_ARGS__) \
963-
ET_INTERNAL_SWITCH_CASE( \
964-
::executorch::aten::ScalarType::Bits2x4, CTYPE_ALIAS, __VA_ARGS__) \
965-
ET_INTERNAL_SWITCH_CASE( \
966-
::executorch::aten::ScalarType::Bits4x2, CTYPE_ALIAS, __VA_ARGS__) \
967-
ET_INTERNAL_SWITCH_CASE( \
968-
::executorch::aten::ScalarType::Bits8, CTYPE_ALIAS, __VA_ARGS__) \
969-
ET_INTERNAL_SWITCH_CASE( \
970-
::executorch::aten::ScalarType::Bits16, CTYPE_ALIAS, __VA_ARGS__)
971-
972-
#define ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, ...) \
924+
#define ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, ...) \
973925
ET_INTERNAL_SWITCH_CASE( \
974926
::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, __VA_ARGS__) \
975927
ET_INTERNAL_SWITCH_CASE( \
@@ -979,12 +931,73 @@ struct promote_types {
979931
ET_INTERNAL_SWITCH_CASE( \
980932
::executorch::aten::ScalarType::Int, CTYPE_ALIAS, __VA_ARGS__) \
981933
ET_INTERNAL_SWITCH_CASE( \
982-
::executorch::aten::ScalarType::Long, CTYPE_ALIAS, __VA_ARGS__) \
934+
::executorch::aten::ScalarType::Long, CTYPE_ALIAS, __VA_ARGS__)
935+
936+
#define ET_INTERNAL_SWITCH_CASE_UINT_TYPES(CTYPE_ALIAS, ...) \
937+
ET_INTERNAL_SWITCH_CASE( \
938+
::executorch::aten::ScalarType::UInt16, CTYPE_ALIAS, __VA_ARGS__) \
939+
ET_INTERNAL_SWITCH_CASE( \
940+
::executorch::aten::ScalarType::UInt32, CTYPE_ALIAS, __VA_ARGS__) \
941+
ET_INTERNAL_SWITCH_CASE( \
942+
::executorch::aten::ScalarType::UInt64, CTYPE_ALIAS, __VA_ARGS__)
943+
944+
#define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, ...) \
983945
ET_INTERNAL_SWITCH_CASE( \
984946
::executorch::aten::ScalarType::Float, CTYPE_ALIAS, __VA_ARGS__) \
985947
ET_INTERNAL_SWITCH_CASE( \
986948
::executorch::aten::ScalarType::Double, CTYPE_ALIAS, __VA_ARGS__)
987949

950+
#define ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, ...) \
951+
ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
952+
ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, __VA_ARGS__)
953+
954+
#define ET_INTERNAL_SWITCH_CASE_COMPLEX_TYPES(CTYPE_ALIAS, ...) \
955+
ET_INTERNAL_SWITCH_CASE( \
956+
::executorch::aten::ScalarType::ComplexFloat, CTYPE_ALIAS, __VA_ARGS__) \
957+
ET_INTERNAL_SWITCH_CASE( \
958+
::executorch::aten::ScalarType::ComplexDouble, CTYPE_ALIAS, __VA_ARGS__)
959+
960+
#define ET_INTERNAL_SWITCH_CASE_COMPLEXH_TYPES(CTYPE_ALIAS, ...) \
961+
ET_INTERNAL_SWITCH_CASE_COMPLEX_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
962+
ET_INTERNAL_SWITCH_CASE( \
963+
::executorch::aten::ScalarType::ComplexHalf, CTYPE_ALIAS, __VA_ARGS__)
964+
965+
#define ET_INTERNAL_SWITCH_CASE_QINT_TYPES(CTYPE_ALIAS, ...) \
966+
ET_INTERNAL_SWITCH_CASE( \
967+
::executorch::aten::ScalarType::QInt8, CTYPE_ALIAS, __VA_ARGS__) \
968+
ET_INTERNAL_SWITCH_CASE( \
969+
::executorch::aten::ScalarType::QUInt8, CTYPE_ALIAS, __VA_ARGS__) \
970+
ET_INTERNAL_SWITCH_CASE( \
971+
::executorch::aten::ScalarType::QInt32, CTYPE_ALIAS, __VA_ARGS__) \
972+
ET_INTERNAL_SWITCH_CASE( \
973+
::executorch::aten::ScalarType::QUInt4x2, CTYPE_ALIAS, __VA_ARGS__) \
974+
ET_INTERNAL_SWITCH_CASE( \
975+
::executorch::aten::ScalarType::QUInt2x4, CTYPE_ALIAS, __VA_ARGS__)
976+
977+
#define ET_INTERNAL_SWITCH_CASE_BITS_TYPES(CTYPE_ALIAS, ...) \
978+
ET_INTERNAL_SWITCH_CASE( \
979+
::executorch::aten::ScalarType::Bits1x8, CTYPE_ALIAS, __VA_ARGS__) \
980+
ET_INTERNAL_SWITCH_CASE( \
981+
::executorch::aten::ScalarType::Bits2x4, CTYPE_ALIAS, __VA_ARGS__) \
982+
ET_INTERNAL_SWITCH_CASE( \
983+
::executorch::aten::ScalarType::Bits4x2, CTYPE_ALIAS, __VA_ARGS__) \
984+
ET_INTERNAL_SWITCH_CASE( \
985+
::executorch::aten::ScalarType::Bits8, CTYPE_ALIAS, __VA_ARGS__) \
986+
ET_INTERNAL_SWITCH_CASE( \
987+
::executorch::aten::ScalarType::Bits16, CTYPE_ALIAS, __VA_ARGS__)
988+
989+
#define ET_INTERNAL_SWITCH_CASE_ALL_TYPES(CTYPE_ALIAS, ...) \
990+
ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
991+
ET_INTERNAL_SWITCH_CASE( \
992+
::executorch::aten::ScalarType::Half, CTYPE_ALIAS, __VA_ARGS__) \
993+
ET_INTERNAL_SWITCH_CASE( \
994+
::executorch::aten::ScalarType::BFloat16, CTYPE_ALIAS, __VA_ARGS__) \
995+
ET_INTERNAL_SWITCH_CASE( \
996+
::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, __VA_ARGS__) \
997+
ET_INTERNAL_SWITCH_CASE_COMPLEXH_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
998+
ET_INTERNAL_SWITCH_CASE_QINT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
999+
ET_INTERNAL_SWITCH_CASE_BITS_TYPES(CTYPE_ALIAS, __VA_ARGS__)
1000+
9881001
#define ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
9891002
ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
9901003
ET_INTERNAL_SWITCH_CASE( \
@@ -1008,29 +1021,11 @@ struct promote_types {
10081021
ET_INTERNAL_SWITCH_CASE( \
10091022
::executorch::aten::ScalarType::ADDITIONAL3, CTYPE_ALIAS, __VA_ARGS__)
10101023

1011-
#define ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, ...) \
1012-
ET_INTERNAL_SWITCH_CASE( \
1013-
::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, __VA_ARGS__) \
1014-
ET_INTERNAL_SWITCH_CASE( \
1015-
::executorch::aten::ScalarType::Char, CTYPE_ALIAS, __VA_ARGS__) \
1016-
ET_INTERNAL_SWITCH_CASE( \
1017-
::executorch::aten::ScalarType::Short, CTYPE_ALIAS, __VA_ARGS__) \
1018-
ET_INTERNAL_SWITCH_CASE( \
1019-
::executorch::aten::ScalarType::Int, CTYPE_ALIAS, __VA_ARGS__) \
1020-
ET_INTERNAL_SWITCH_CASE( \
1021-
::executorch::aten::ScalarType::Long, CTYPE_ALIAS, __VA_ARGS__)
1022-
10231024
#define ET_INTERNAL_SWITCH_CASE_INT_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
10241025
ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
10251026
ET_INTERNAL_SWITCH_CASE( \
10261027
::executorch::aten::ScalarType::ADDITIONAL, CTYPE_ALIAS, __VA_ARGS__)
10271028

1028-
#define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, ...) \
1029-
ET_INTERNAL_SWITCH_CASE( \
1030-
::executorch::aten::ScalarType::Double, CTYPE_ALIAS, __VA_ARGS__) \
1031-
ET_INTERNAL_SWITCH_CASE( \
1032-
::executorch::aten::ScalarType::Float, CTYPE_ALIAS, __VA_ARGS__)
1033-
10341029
#define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
10351030
ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
10361031
ET_INTERNAL_SWITCH_CASE( \
@@ -1050,32 +1045,6 @@ struct promote_types {
10501045
ET_INTERNAL_SWITCH_CASE( \
10511046
::executorch::aten::ScalarType::ADDITIONAL3, CTYPE_ALIAS, __VA_ARGS__)
10521047

1053-
#define ET_INTERNAL_SWITCH_CASE_QINT_TYPES(CTYPE_ALIAS, ...) \
1054-
ET_INTERNAL_SWITCH_CASE( \
1055-
::executorch::aten::ScalarType::QInt8, CTYPE_ALIAS, __VA_ARGS__) \
1056-
ET_INTERNAL_SWITCH_CASE( \
1057-
::executorch::aten::ScalarType::QUInt8, CTYPE_ALIAS, __VA_ARGS__) \
1058-
ET_INTERNAL_SWITCH_CASE( \
1059-
::executorch::aten::ScalarType::QInt32, CTYPE_ALIAS, __VA_ARGS__) \
1060-
ET_INTERNAL_SWITCH_CASE( \
1061-
::executorch::aten::ScalarType::QUInt4x2, CTYPE_ALIAS, __VA_ARGS__) \
1062-
ET_INTERNAL_SWITCH_CASE( \
1063-
::executorch::aten::ScalarType::QUInt2x4, CTYPE_ALIAS, __VA_ARGS__)
1064-
1065-
#define ET_INTERNAL_SWITCH_CASE_COMPLEX_TYPES(CTYPE_ALIAS, ...) \
1066-
ET_INTERNAL_SWITCH_CASE( \
1067-
::executorch::aten::ScalarType::ComplexFloat, CTYPE_ALIAS, __VA_ARGS__) \
1068-
ET_INTERNAL_SWITCH_CASE( \
1069-
::executorch::aten::ScalarType::ComplexDouble, CTYPE_ALIAS, __VA_ARGS__)
1070-
1071-
#define ET_INTERNAL_SWITCH_CASE_COMPLEXH_TYPES(CTYPE_ALIAS, ...) \
1072-
ET_INTERNAL_SWITCH_CASE( \
1073-
::executorch::aten::ScalarType::ComplexHalf, CTYPE_ALIAS, __VA_ARGS__) \
1074-
ET_INTERNAL_SWITCH_CASE( \
1075-
::executorch::aten::ScalarType::ComplexFloat, CTYPE_ALIAS, __VA_ARGS__) \
1076-
ET_INTERNAL_SWITCH_CASE( \
1077-
::executorch::aten::ScalarType::ComplexDouble, CTYPE_ALIAS, __VA_ARGS__)
1078-
10791048
#define ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_TYPES(CTYPE_ALIAS, ...) \
10801049
ET_INTERNAL_SWITCH_CASE( \
10811050
::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, __VA_ARGS__) \
@@ -1204,26 +1173,15 @@ struct promote_types {
12041173
ET_SWITCH_REAL_TYPES_AND3( \
12051174
Half, Bool, BFloat16, TYPE, CONTEXT, NAME, CTYPE_ALIAS, __VA_ARGS__)
12061175

1207-
#define ET_SWITCH_REALHBBF16_AND_UINT_TYPES( \
1208-
TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1209-
ET_INTERNAL_SWITCH( \
1210-
TYPE, \
1211-
CONTEXT, \
1212-
NAME, \
1213-
ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND3( \
1214-
Half, Bool, BFloat16, CTYPE_ALIAS, __VA_ARGS__) \
1215-
ET_INTERNAL_SWITCH_CASE( \
1216-
::executorch::aten::ScalarType::UInt16, \
1217-
CTYPE_ALIAS, \
1218-
__VA_ARGS__) \
1219-
ET_INTERNAL_SWITCH_CASE( \
1220-
::executorch::aten::ScalarType::UInt32, \
1221-
CTYPE_ALIAS, \
1222-
__VA_ARGS__) \
1223-
ET_INTERNAL_SWITCH_CASE( \
1224-
::executorch::aten::ScalarType::UInt64, \
1225-
CTYPE_ALIAS, \
1226-
__VA_ARGS__))
1176+
#define ET_SWITCH_REALHBBF16_AND_UINT_TYPES( \
1177+
TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1178+
ET_INTERNAL_SWITCH( \
1179+
TYPE, \
1180+
CONTEXT, \
1181+
NAME, \
1182+
ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND3( \
1183+
Half, Bool, BFloat16, CTYPE_ALIAS, __VA_ARGS__) \
1184+
ET_INTERNAL_SWITCH_CASE_UINT_TYPES(CTYPE_ALIAS, __VA_ARGS__))
12271185

12281186
#define ET_SWITCH_INT_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
12291187
ET_INTERNAL_SWITCH( \

0 commit comments

Comments
 (0)