Skip to content

Commit ab99aea

Browse files
committed
Update mask/maskz variants in avx512vlintrin.h and avx512vlbwintrin.h to
be constexpr compatible
1 parent 2b91d9f commit ab99aea

File tree

4 files changed

+304
-144
lines changed

4 files changed

+304
-144
lines changed

clang/lib/Headers/avx512vlbwintrin.h

Lines changed: 64 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -861,257 +861,225 @@ _mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
861861
(__v16hi)_mm256_setzero_si256());
862862
}
863863

864-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
865-
_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
866-
{
864+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
865+
_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
867866
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
868867
(__v16qi)_mm_max_epi8(__A, __B),
869868
(__v16qi)_mm_setzero_si128());
870869
}
871870

872-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
873-
_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
874-
{
871+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
872+
_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
875873
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
876874
(__v16qi)_mm_max_epi8(__A, __B),
877875
(__v16qi)__W);
878876
}
879877

880-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
881-
_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
882-
{
878+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
879+
_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
883880
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
884881
(__v32qi)_mm256_max_epi8(__A, __B),
885882
(__v32qi)_mm256_setzero_si256());
886883
}
887884

888-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
889-
_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
890-
{
885+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
886+
_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
891887
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
892888
(__v32qi)_mm256_max_epi8(__A, __B),
893889
(__v32qi)__W);
894890
}
895891

896-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
897-
_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
898-
{
892+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
893+
_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
899894
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
900895
(__v8hi)_mm_max_epi16(__A, __B),
901896
(__v8hi)_mm_setzero_si128());
902897
}
903898

904-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
905-
_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
906-
{
899+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
900+
_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
907901
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
908902
(__v8hi)_mm_max_epi16(__A, __B),
909903
(__v8hi)__W);
910904
}
911905

912-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
913-
_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
914-
{
906+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
907+
_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
915908
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
916909
(__v16hi)_mm256_max_epi16(__A, __B),
917910
(__v16hi)_mm256_setzero_si256());
918911
}
919912

920-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
921-
_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
922-
{
913+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
914+
_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
923915
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
924916
(__v16hi)_mm256_max_epi16(__A, __B),
925917
(__v16hi)__W);
926918
}
927919

928-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
929-
_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
930-
{
920+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
921+
_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
931922
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
932923
(__v16qi)_mm_max_epu8(__A, __B),
933924
(__v16qi)_mm_setzero_si128());
934925
}
935926

936-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
937-
_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
938-
{
927+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
928+
_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
939929
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
940930
(__v16qi)_mm_max_epu8(__A, __B),
941931
(__v16qi)__W);
942932
}
943933

944-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
945-
_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
946-
{
934+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
935+
_mm256_maskz_max_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
947936
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
948937
(__v32qi)_mm256_max_epu8(__A, __B),
949938
(__v32qi)_mm256_setzero_si256());
950939
}
951940

952-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
953-
_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
954-
{
941+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
942+
_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
955943
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
956944
(__v32qi)_mm256_max_epu8(__A, __B),
957945
(__v32qi)__W);
958946
}
959947

960-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
961-
_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
962-
{
948+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
949+
_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
963950
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
964951
(__v8hi)_mm_max_epu16(__A, __B),
965952
(__v8hi)_mm_setzero_si128());
966953
}
967954

968-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
969-
_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
970-
{
955+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
956+
_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
971957
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
972958
(__v8hi)_mm_max_epu16(__A, __B),
973959
(__v8hi)__W);
974960
}
975961

976-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
977-
_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
978-
{
962+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
963+
_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
979964
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
980965
(__v16hi)_mm256_max_epu16(__A, __B),
981966
(__v16hi)_mm256_setzero_si256());
982967
}
983968

984-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
985-
_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
986-
{
969+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
970+
_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
987971
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
988972
(__v16hi)_mm256_max_epu16(__A, __B),
989973
(__v16hi)__W);
990974
}
991975

992-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
993-
_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
994-
{
976+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
977+
_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
995978
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
996979
(__v16qi)_mm_min_epi8(__A, __B),
997980
(__v16qi)_mm_setzero_si128());
998981
}
999982

1000-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1001-
_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1002-
{
983+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
984+
_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1003985
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1004986
(__v16qi)_mm_min_epi8(__A, __B),
1005987
(__v16qi)__W);
1006988
}
1007989

1008-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1009-
_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1010-
{
990+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
991+
_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
1011992
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1012993
(__v32qi)_mm256_min_epi8(__A, __B),
1013994
(__v32qi)_mm256_setzero_si256());
1014995
}
1015996

1016-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1017-
_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1018-
{
997+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
998+
_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1019999
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
10201000
(__v32qi)_mm256_min_epi8(__A, __B),
10211001
(__v32qi)__W);
10221002
}
10231003

1024-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1025-
_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1026-
{
1004+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1005+
_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
10271006
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
10281007
(__v8hi)_mm_min_epi16(__A, __B),
10291008
(__v8hi)_mm_setzero_si128());
10301009
}
10311010

1032-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1033-
_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1034-
{
1011+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1012+
_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
10351013
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
10361014
(__v8hi)_mm_min_epi16(__A, __B),
10371015
(__v8hi)__W);
10381016
}
10391017

1040-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1041-
_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1042-
{
1018+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1019+
_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
10431020
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
10441021
(__v16hi)_mm256_min_epi16(__A, __B),
10451022
(__v16hi)_mm256_setzero_si256());
10461023
}
10471024

1048-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1049-
_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1050-
{
1025+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1026+
_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
10511027
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
10521028
(__v16hi)_mm256_min_epi16(__A, __B),
10531029
(__v16hi)__W);
10541030
}
10551031

1056-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1057-
_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1058-
{
1032+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1033+
_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
10591034
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
10601035
(__v16qi)_mm_min_epu8(__A, __B),
10611036
(__v16qi)_mm_setzero_si128());
10621037
}
10631038

1064-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1065-
_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1066-
{
1039+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1040+
_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
10671041
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
10681042
(__v16qi)_mm_min_epu8(__A, __B),
10691043
(__v16qi)__W);
10701044
}
10711045

1072-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1073-
_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1074-
{
1046+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1047+
_mm256_maskz_min_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
10751048
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
10761049
(__v32qi)_mm256_min_epu8(__A, __B),
10771050
(__v32qi)_mm256_setzero_si256());
10781051
}
10791052

1080-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1081-
_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1082-
{
1053+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1054+
_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
10831055
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
10841056
(__v32qi)_mm256_min_epu8(__A, __B),
10851057
(__v32qi)__W);
10861058
}
10871059

1088-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1089-
_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1090-
{
1060+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1061+
_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
10911062
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
10921063
(__v8hi)_mm_min_epu16(__A, __B),
10931064
(__v8hi)_mm_setzero_si128());
10941065
}
10951066

1096-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1097-
_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1098-
{
1067+
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
1068+
_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
10991069
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
11001070
(__v8hi)_mm_min_epu16(__A, __B),
11011071
(__v8hi)__W);
11021072
}
11031073

1104-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1105-
_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1106-
{
1074+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1075+
_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
11071076
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
11081077
(__v16hi)_mm256_min_epu16(__A, __B),
11091078
(__v16hi)_mm256_setzero_si256());
11101079
}
11111080

1112-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1113-
_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1114-
{
1081+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
1082+
_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
11151083
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
11161084
(__v16hi)_mm256_min_epu16(__A, __B),
11171085
(__v16hi)__W);

0 commit comments

Comments
 (0)