Skip to content

Commit 873f6a0

Browse files
committed
added tests for all add arithmitics #152490
1 parent 25a4077 commit 873f6a0

File tree

6 files changed

+72
-2
lines changed

6 files changed

+72
-2
lines changed

clang/test/CodeGen/X86/avx2-builtins.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,32 @@ __m256i test_mm256_add_epi8(__m256i a, __m256i b) {
4848
return _mm256_add_epi8(a, b);
4949
}
5050

51+
TEST_CONSTEXPR(match_v32qi(_mm256_add_epi8((__m256i)(__v32qi){ -64, -65, 66, 67, 68, -69, -70, -71, -72, 73, 74, -75, 76, 77, -78, 79, -80, 81, 82, -83, 84, -85, 86, 87, -88, -89, -90, 91, -92, 93, 94, 95}, (__m256i)(__v32qi){ -1, -2, 3, -4, 5, -6, 7, 8, 9, -10, 11, -12, 13, 14, 15, 16, -17, 18, 19, 20, -21, 22, -23, -24, 25, 26, -27, -28, -29, 30, -31, 32}), -65, -67, 69, 63, 73, -75, -63, -63, -63, 63, 85, -87, 89, 91, -63, 95, -97, 99, 101, -63, 63, -63, 63, 63, -63, -63, -117, 63, -121, 123, 63, 127));
52+
5153
__m256i test_mm256_add_epi16(__m256i a, __m256i b) {
5254
// CHECK-LABEL: test_mm256_add_epi16
5355
// CHECK: add <16 x i16>
5456
return _mm256_add_epi16(a, b);
5557
}
5658

59+
TEST_CONSTEXPR(match_v16hi(_mm256_add_epi16((__m256i)(__v16hi){ -32, -33, 34, -35, -36, 37, -38, -39, -40, -41, -42, 43, -44, -45, 46, 47}, (__m256i)(__v16hi){ -1, 2, 3, -4, 5, -6, 7, 8, 9, 10, -11, -12, -13, 14, -15, -16}), -33, -31, 37, -39, -31, 31, -31, -31, -31, -31, -53, 31, -57, -31, 31, 31));
60+
5761
__m256i test_mm256_add_epi32(__m256i a, __m256i b) {
5862
// CHECK-LABEL: test_mm256_add_epi32
5963
// CHECK: add <8 x i32>
6064
return _mm256_add_epi32(a, b);
6165
}
6266

67+
TEST_CONSTEXPR(match_v8si(_mm256_add_epi32((__m256i)(__v8si){ 16, 17, 18, -19, 20, -21, 22, 23}, (__m256i)(__v8si){ -1, 2, 3, 4, 5, 6, 7, 8}), 15, 19, 21, -15, 25, -15, 29, 31));
68+
6369
__m256i test_mm256_add_epi64(__m256i a, __m256i b) {
6470
// CHECK-LABEL: test_mm256_add_epi64
6571
// CHECK: add <4 x i64>
6672
return _mm256_add_epi64(a, b);
6773
}
6874

75+
TEST_CONSTEXPR(match_v4di(_mm256_add_epi64((__m256i)(__v4di){ 8, -9, 10, 11}, (__m256i)(__v4di){ -1, -2, 3, 4}), 7, -11, 13, 15));
76+
6977
__m256i test_mm256_adds_epi8(__m256i a, __m256i b) {
7078
// CHECK-LABEL: test_mm256_adds_epi8
7179
// CHECK: call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})

clang/test/CodeGen/X86/avx512bw-builtins.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,20 +752,26 @@ __m512i test_mm512_add_epi8 (__m512i __A, __m512i __B) {
752752
return _mm512_add_epi8(__A,__B);
753753
}
754754

755+
TEST_CONSTEXPR(match_v64qi(_mm512_add_epi8((__m512i)(__v64qi){ -128, 127, 126, -125, -124, -123, 122, 121, -120, -119, 118, -117, 116, 115, -114, 113, -112, 111, -110, -109, -108, -107, -106, -105, 104, -103, -102, 101, 100, -99, 98, -97, -96, 95, 94, -93, 92, 91, 90, -89, 88, 87, -86, -85, -84, -83, -82, 81, -80, 79, -78, 77, -76, 75, 74, -73, -72, 71, -70, -69, -68, 67, -66, 65}, (__m512i)(__v64qi){ 1, -2, 3, -4, -5, -6, -7, -8, 9, 10, 11, 12, -13, -14, 15, 16, -17, -18, -19, 20, -21, -22, 23, 24, 25, -26, 27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, 38, -39, -40, 41, -42, -43, 44, -45, -46, 47, 48, -49, -50, 51, -52, -53, 54, 55, -56, -57, 58, 59, 60, 61, -62, 63, -64}), -127, 125, -127, 127, 127, 127, 115, 113, -111, -109, -127, -105, 103, 101, -99, -127, 127, 93, 127, -89, 127, 127, -83, -81, -127, 127, -75, 73, 71, 127, 67, 127, 127, 61, 59, 127, 55, -127, 51, 127, -127, 45, 127, -41, 127, 127, -35, -127, 127, 29, -27, 25, 127, -127, -127, 127, 127, -127, -11, -9, -7, 5, -3, 1));
756+
755757
__m512i test_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
756758
//CHECK-LABEL: test_mm512_mask_add_epi8
757759
//CHECK: add <64 x i8> %{{.*}}, %{{.*}}
758760
//CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
759761
return _mm512_mask_add_epi8(__W, __U, __A, __B);
760762
}
761763

764+
TEST_CONSTEXPR(match_v64qi(_mm512_mask_add_epi8((__m512i)(__v64qi){ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}, 0x2488D358BA7928B1, (__m512i)(__v64qi){ -128, 127, 126, -125, -124, -123, 122, 121, -120, -119, 118, -117, 116, 115, -114, 113, -112, 111, -110, -109, -108, -107, -106, -105, 104, -103, -102, 101, 100, -99, 98, -97, -96, 95, 94, -93, 92, 91, 90, -89, 88, 87, -86, -85, -84, -83, -82, 81, -80, 79, -78, 77, -76, 75, 74, -73, -72, 71, -70, -69, -68, 67, -66, 65}, (__m512i)(__v64qi){ 1, -2, 3, -4, -5, -6, -7, -8, 9, 10, 11, 12, -13, -14, 15, 16, -17, -18, -19, 20, -21, -22, 23, 24, 25, -26, 27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, 38, -39, -40, 41, -42, -43, 44, -45, -46, 47, 48, -49, -50, 51, -52, -53, 54, 55, -56, -57, 58, 59, 60, 61, -62, 63, -64}), -127, 99, 99, 99, 127, 127, 99, 113, 99, 99, 99, -105, 99, 101, 99, 99, 127, 99, 99, -89, 127, 127, -83, 99, 99, 127, 99, 73, 71, 127, 99, 127, 99, 99, 99, 127, 55, 99, 51, 99, -127, 45, 99, 99, 127, 99, -35, -127, 99, 99, 99, 25, 99, 99, 99, 127, 99, 99, -11, 99, 99, 5, 99, 99));
765+
762766
__m512i test_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
763767
//CHECK-LABEL: test_mm512_maskz_add_epi8
764768
//CHECK: add <64 x i8> %{{.*}}, %{{.*}}
765769
//CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
766770
return _mm512_maskz_add_epi8(__U, __A, __B);
767771
}
768772

773+
TEST_CONSTEXPR(match_v64qi(_mm512_maskz_add_epi8(0x2488D358BA7928B1, (__m512i)(__v64qi){ -128, 127, 126, -125, -124, -123, 122, 121, -120, -119, 118, -117, 116, 115, -114, 113, -112, 111, -110, -109, -108, -107, -106, -105, 104, -103, -102, 101, 100, -99, 98, -97, -96, 95, 94, -93, 92, 91, 90, -89, 88, 87, -86, -85, -84, -83, -82, 81, -80, 79, -78, 77, -76, 75, 74, -73, -72, 71, -70, -69, -68, 67, -66, 65}, (__m512i)(__v64qi){ 1, -2, 3, -4, -5, -6, -7, -8, 9, 10, 11, 12, -13, -14, 15, 16, -17, -18, -19, 20, -21, -22, 23, 24, 25, -26, 27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, 38, -39, -40, 41, -42, -43, 44, -45, -46, 47, 48, -49, -50, 51, -52, -53, 54, 55, -56, -57, 58, 59, 60, 61, -62, 63, -64}), -127, 0, 0, 0, 127, 127, 0, 113, 0, 0, 0, -105, 0, 101, 0, 0, 127, 0, 0, -89, 127, 127, -83, 0, 0, 127, 0, 73, 71, 127, 0, 127, 0, 0, 0, 127, 55, 0, 51, 0, -127, 45, 0, 0, 127, 0, -35, -127, 0, 0, 0, 25, 0, 0, 0, 127, 0, 0, -11, 0, 0, 5, 0, 0));
774+
769775
__m512i test_mm512_sub_epi8 (__m512i __A, __m512i __B) {
770776
//CHECK-LABEL: test_mm512_sub_epi8
771777
//CHECK: sub <64 x i8>
@@ -792,20 +798,26 @@ __m512i test_mm512_add_epi16 (__m512i __A, __m512i __B) {
792798
return _mm512_add_epi16(__A, __B);
793799
}
794800

801+
TEST_CONSTEXPR(match_v32hi(_mm512_add_epi16((__m512i)(__v32hi){ 64, 65, 66, 67, -68, 69, -70, 71, 72, -73, 74, -75, 76, 77, -78, -79, 80, 81, 82, -83, -84, -85, 86, 87, -88, 89, -90, 91, 92, -93, 94, 95}, (__m512i)(__v32hi){ 1, 2, -3, -4, 5, 6, -7, -8, -9, -10, -11, 12, 13, -14, 15, 16, -17, -18, 19, -20, -21, 22, -23, -24, 25, -26, -27, -28, -29, 30, -31, -32}), 65, 67, 63, 63, -63, 75, -77, 63, 63, -83, 63, -63, 89, 63, -63, -63, 63, 63, 101, -103, -105, -63, 63, 63, -63, 63, -117, 63, 63, -63, 63, 63));
802+
795803
__m512i test_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
796804
//CHECK-LABEL: test_mm512_mask_add_epi16
797805
//CHECK: add <32 x i16> %{{.*}}, %{{.*}}
798806
//CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
799807
return _mm512_mask_add_epi16(__W, __U, __A, __B);
800808
}
801809

810+
TEST_CONSTEXPR(match_v32hi(_mm512_mask_add_epi16((__m512i)(__v32hi){ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}, 0xB885E123, (__m512i)(__v32hi){ 64, 65, 66, 67, -68, 69, -70, 71, 72, -73, 74, -75, 76, 77, -78, -79, 80, 81, 82, -83, -84, -85, 86, 87, -88, 89, -90, 91, 92, -93, 94, 95}, (__m512i)(__v32hi){ 1, 2, -3, -4, 5, 6, -7, -8, -9, -10, -11, 12, 13, -14, 15, 16, -17, -18, 19, -20, -21, 22, -23, -24, 25, -26, -27, -28, -29, 30, -31, -32}), 65, 67, 99, 99, 99, 75, 99, 99, 63, 99, 99, 99, 99, 63, -63, -63, 63, 99, 101, 99, 99, 99, 99, 63, 99, 99, 99, 63, 63, -63, 99, 63));
811+
802812
__m512i test_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
803813
//CHECK-LABEL: test_mm512_maskz_add_epi16
804814
//CHECK: add <32 x i16> %{{.*}}, %{{.*}}
805815
//CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
806816
return _mm512_maskz_add_epi16(__U, __A, __B);
807817
}
808818

819+
TEST_CONSTEXPR(match_v32hi(_mm512_maskz_add_epi16(0xB885E123, (__m512i)(__v32hi){ 64, 65, 66, 67, -68, 69, -70, 71, 72, -73, 74, -75, 76, 77, -78, -79, 80, 81, 82, -83, -84, -85, 86, 87, -88, 89, -90, 91, 92, -93, 94, 95}, (__m512i)(__v32hi){ 1, 2, -3, -4, 5, 6, -7, -8, -9, -10, -11, 12, 13, -14, 15, 16, -17, -18, 19, -20, -21, 22, -23, -24, 25, -26, -27, -28, -29, 30, -31, -32}), 65, 67, 0, 0, 0, 75, 0, 0, 63, 0, 0, 0, 0, 63, -63, -63, 63, 0, 101, 0, 0, 0, 0, 63, 0, 0, 0, 63, 63, -63, 0, 63));
820+
809821
__m512i test_mm512_sub_epi16 (__m512i __A, __m512i __B) {
810822
//CHECK-LABEL: test_mm512_sub_epi16
811823
//CHECK: sub <32 x i16>

clang/test/CodeGen/X86/avx512f-builtins.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3048,6 +3048,8 @@ __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
30483048
return _mm512_maskz_add_epi32(__k,__A,__B);
30493049
}
30503050

3051+
TEST_CONSTEXPR(match_v16si(_mm512_maskz_add_epi32(0xB3F3, (__m512i)(__v16si){ -32, -33, -34, 35, 36, 37, -38, -39, 40, 41, -42, 43, -44, -45, 46, -47}, (__m512i)(__v16si){ 1, 2, -3, -4, -5, -6, -7, 8, 9, 10, 11, -12, 13, 14, -15, -16}), -31, -31, 0, 0, 31, 31, -45, -31, 49, 51, 0, 0, -31, -31, 0, -63));
3052+
30513053
__m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
30523054
__m512i __src) {
30533055
//CHECK-LABEL: test_mm512_mask_add_epi32
@@ -3056,19 +3058,25 @@ __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
30563058
return _mm512_mask_add_epi32(__src,__k,__A,__B);
30573059
}
30583060

3061+
TEST_CONSTEXPR(match_v16si(_mm512_mask_add_epi32((__m512i)(__v16si){ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}, 0xB3F3, (__m512i)(__v16si){ -32, -33, -34, 35, 36, 37, -38, -39, 40, 41, -42, 43, -44, -45, 46, -47}, (__m512i)(__v16si){ 1, 2, -3, -4, -5, -6, -7, 8, 9, 10, 11, -12, 13, 14, -15, -16}), -31, -31, 99, 99, 31, 31, -45, -31, 49, 51, 99, 99, -31, -31, 99, -63));
3062+
30593063
__m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
30603064
//CHECK-LABEL: test_mm512_add_epi32
30613065
//CHECK: add <16 x i32>
30623066
return _mm512_add_epi32(__A,__B);
30633067
}
30643068

3069+
TEST_CONSTEXPR(match_v16si(_mm512_add_epi32((__m512i)(__v16si){ -32, -33, -34, 35, 36, 37, -38, -39, 40, 41, -42, 43, -44, -45, 46, -47}, (__m512i)(__v16si){ 1, 2, -3, -4, -5, -6, -7, 8, 9, 10, 11, -12, 13, 14, -15, -16}), -31, -31, -37, 31, 31, 31, -45, -31, 49, 51, -31, 31, -31, -31, 31, -63));
3070+
30653071
__m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
30663072
//CHECK-LABEL: test_mm512_maskz_add_epi64
30673073
//CHECK: add <8 x i64> %{{.*}}, %{{.*}}
30683074
//CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
30693075
return _mm512_maskz_add_epi64(__k,__A,__B);
30703076
}
30713077

3078+
TEST_CONSTEXPR(match_v8di(_mm512_maskz_add_epi64(0x6A, (__m512i)(__v8di){ -16, 17, -18, 19, -20, 21, 22, 23}, (__m512i)(__v8di){ -1, -2, -3, 4, 5, -6, -7, 8}), 0, 15, 0, 23, 0, 15, 15, 0));
3079+
30723080
__m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
30733081
__m512i __src) {
30743082
//CHECK-LABEL: test_mm512_mask_add_epi64
@@ -3077,12 +3085,16 @@ __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
30773085
return _mm512_mask_add_epi64(__src,__k,__A,__B);
30783086
}
30793087

3088+
TEST_CONSTEXPR(match_v8di(_mm512_mask_add_epi64((__m512i)(__v8di){ 99, 99, 99, 99, 99, 99, 99, 99}, 0x6A, (__m512i)(__v8di){ -16, 17, -18, 19, -20, 21, 22, 23}, (__m512i)(__v8di){ -1, -2, -3, 4, 5, -6, -7, 8}), 99, 15, 99, 23, 99, 15, 15, 99));
3089+
30803090
__m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
30813091
//CHECK-LABEL: test_mm512_add_epi64
30823092
//CHECK: add <8 x i64>
30833093
return _mm512_add_epi64(__A,__B);
30843094
}
30853095

3096+
TEST_CONSTEXPR(match_v8di(_mm512_add_epi64((__m512i)(__v8di){ -16, 17, -18, 19, -20, 21, 22, 23}, (__m512i)(__v8di){ -1, -2, -3, 4, 5, -6, -7, 8}), -17, 15, -21, 23, -15, 15, 15, 31));
3097+
30863098
__m512i test_mm512_mul_epi32(__m512i __A, __m512i __B) {
30873099
//CHECK-LABEL: test_mm512_mul_epi32
30883100
//CHECK: shl <8 x i64> %{{.*}}, splat (i64 32)

clang/test/CodeGen/X86/avx512vl-builtins.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,13 +615,17 @@ __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
615615
return _mm256_mask_add_epi32(__W, __U, __A, __B);
616616
}
617617

618+
TEST_CONSTEXPR(match_v8si(_mm256_mask_add_epi32((__m256i)(__v8si){ 99, 99, 99, 99, 99, 99, 99, 99}, 0xA1, (__m256i)(__v8si){ 16, 17, 18, -19, 20, -21, 22, 23}, (__m256i)(__v8si){ -1, 2, 3, 4, 5, 6, 7, 8}), 15, 99, 99, 99, 99, -15, 99, 31));
619+
618620
__m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
619621
//CHECK-LABEL: test_mm256_maskz_add_epi32
620622
//CHECK: add <8 x i32> %{{.*}}, %{{.*}}
621623
//CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
622624
return _mm256_maskz_add_epi32(__U, __A, __B);
623625
}
624626

627+
TEST_CONSTEXPR(match_v8si(_mm256_maskz_add_epi32(0xA1, (__m256i)(__v8si){ 16, 17, 18, -19, 20, -21, 22, 23}, (__m256i)(__v8si){ -1, 2, 3, 4, 5, 6, 7, 8}), 15, 0, 0, 0, 0, -15, 0, 31));
628+
625629
__m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
626630
__m256i __B) {
627631
//CHECK-LABEL: test_mm256_mask_add_epi64
@@ -630,13 +634,17 @@ __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
630634
return _mm256_mask_add_epi64(__W,__U,__A,__B);
631635
}
632636

637+
TEST_CONSTEXPR(match_v4di(_mm256_mask_add_epi64((__m256i)(__v4di){ 99, 99, 99, 99}, 0x0, (__m256i)(__v4di){ 8, -9, 10, 11}, (__m256i)(__v4di){ -1, -2, 3, 4}), 99, 99, 99, 99));
638+
633639
__m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
634640
//CHECK-LABEL: test_mm256_maskz_add_epi64
635641
//CHECK: add <4 x i64> %{{.*}}, %{{.*}}
636642
//CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
637643
return _mm256_maskz_add_epi64 (__U,__A,__B);
638644
}
639645

646+
TEST_CONSTEXPR(match_v4di(_mm256_maskz_add_epi64(0x0, (__m256i)(__v4di){ 8, -9, 10, 11}, (__m256i)(__v4di){ -1, -2, 3, 4}), 0, 0, 0, 0));
647+
640648
__m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
641649
__m256i __B) {
642650
//CHECK-LABEL: test_mm256_mask_sub_epi32
@@ -675,6 +683,7 @@ __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
675683
return _mm_mask_add_epi32(__W,__U,__A,__B);
676684
}
677685

686+
TEST_CONSTEXPR(match_v4si(_mm_mask_add_epi32((__m128i)(__v4si){ 99, 99, 99, 99}, 0xA, (__m128i)(__v4si){ 8, 9, 10, 11}, (__m128i)(__v4si){ -1, -2, 3, 4}), 99, 7, 99, 15));
678687

679688
__m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
680689
//CHECK-LABEL: test_mm_maskz_add_epi32
@@ -683,6 +692,8 @@ __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
683692
return _mm_maskz_add_epi32 (__U,__A,__B);
684693
}
685694

695+
TEST_CONSTEXPR(match_v4si(_mm_maskz_add_epi32(0xA, (__m128i)(__v4si){ 8, 9, 10, 11}, (__m128i)(__v4si){ -1, -2, 3, 4}), 0, 7, 0, 15));
696+
686697
__m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
687698
__m128i __B) {
688699
//CHECK-LABEL: test_mm_mask_add_epi64
@@ -691,13 +702,17 @@ __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
691702
return _mm_mask_add_epi64 (__W,__U,__A,__B);
692703
}
693704

705+
TEST_CONSTEXPR(match_v2di(_mm_mask_add_epi64((__m128i)(__v2di){ 99, 99}, 0x3, (__m128i)(__v2di){ 4, -5}, (__m128i)(__v2di){ 1, -2}), 5, -7));
706+
694707
__m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
695708
//CHECK-LABEL: test_mm_maskz_add_epi64
696709
//CHECK: add <2 x i64> %{{.*}}, %{{.*}}
697710
//CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
698711
return _mm_maskz_add_epi64 (__U,__A,__B);
699712
}
700713

714+
TEST_CONSTEXPR(match_v2di(_mm_maskz_add_epi64(0x3, (__m128i)(__v2di){ 4, -5}, (__m128i)(__v2di){ 1, -2}), 5, -7));
715+
701716
__m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
702717
__m128i __B) {
703718
//CHECK-LABEL: test_mm_mask_sub_epi32

0 commit comments

Comments
 (0)