|
3 | 3 |
|
4 | 4 |
|
5 | 5 | #include <immintrin.h> |
| 6 | +#include "builtin_test_helpers.h" |
6 | 7 |
|
7 | 8 | __mmask32 test_knot_mask32(__mmask32 a) { |
8 | 9 | // CHECK-LABEL: @test_knot_mask32 |
@@ -823,6 +824,7 @@ __m512i test_mm512_mullo_epi16 (__m512i __A, __m512i __B) { |
823 | 824 | //CHECK: mul <32 x i16> |
824 | 825 | return _mm512_mullo_epi16(__A, __B); |
825 | 826 | } |
| 827 | +TEST_CONSTEXPR(match_v32hi(_mm512_mullo_epi16((__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}, (__m512i)(__v32hi){-64, -62, +60, +58, -56, -54, +52, +50, -48, -46, +44, +42, -40, -38, +36, +34, -32, -30, +28, +26, -24, -22, +20, +18, -16, -14, +12, +10, -8, +6, -4, +2}), -64, 124, 180, -232, -280, 324, 364, -400, -432, 460, 484, -504, -520, 532, 540, -544, -544, 540, 532, -520, -504, 484, 460, -432, -400, 364, 324, -280, -232, -180, -124, -64)); |
826 | 828 |
|
827 | 829 | __m512i test_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { |
828 | 830 | //CHECK-LABEL: @test_mm512_mask_mullo_epi16 |
@@ -1331,29 +1333,36 @@ __m512i test_mm512_mulhi_epi16(__m512i __A, __m512i __B) { |
1331 | 1333 | // CHECK: @llvm.x86.avx512.pmulh.w.512 |
1332 | 1334 | return _mm512_mulhi_epi16(__A,__B); |
1333 | 1335 | } |
| 1336 | +TEST_CONSTEXPR(match_v32hi(_mm512_mulhi_epi16((__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}, (__m512i)(__v32hi){-64, -62, +60, +58, -56, -54, +52, +50, -48, -46, +44, +42, -40, -38, +36, +34, -32, -30, +28, +26, -24, -22, +20, +18, -16, -14, +12, +10, -8, +6, -4, +2}), -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, -1)); |
| 1337 | + |
1334 | 1338 | __m512i test_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { |
1335 | 1339 | // CHECK-LABEL: @test_mm512_mask_mulhi_epi16 |
1336 | 1340 | // CHECK: @llvm.x86.avx512.pmulh.w.512 |
1337 | 1341 | // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} |
1338 | 1342 | return _mm512_mask_mulhi_epi16(__W,__U,__A,__B); |
1339 | 1343 | } |
| 1344 | + |
1340 | 1345 | __m512i test_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { |
1341 | 1346 | // CHECK-LABEL: @test_mm512_maskz_mulhi_epi16 |
1342 | 1347 | // CHECK: @llvm.x86.avx512.pmulh.w.512 |
1343 | 1348 | // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} |
1344 | 1349 | return _mm512_maskz_mulhi_epi16(__U,__A,__B); |
1345 | 1350 | } |
| 1351 | + |
1346 | 1352 | __m512i test_mm512_mulhi_epu16(__m512i __A, __m512i __B) { |
1347 | 1353 | // CHECK-LABEL: @test_mm512_mulhi_epu16 |
1348 | 1354 | // CHECK: @llvm.x86.avx512.pmulhu.w.512 |
1349 | 1355 | return _mm512_mulhi_epu16(__A,__B); |
1350 | 1356 | } |
| 1357 | +TEST_CONSTEXPR(match_v32hi(_mm512_mulhi_epu16((__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}, (__m512i)(__v32hi){-64, -62, +60, +58, -56, -54, +52, +50, -48, -46, +44, +42, -40, -38, +36, +34, -32, -30, +28, +26, -24, -22, +20, +18, -16, -14, +12, +10, -8, +6, -4, +2}), 0, -64, 0, 57, 4, -60, 0, 49, 8, -56, 0, 41, 12, -52, 0, 33, 16, -48, 0, 25, 20, -44, 0, 17, 24, -40, 0, 9, 28, 5, 30, 1)); |
| 1358 | + |
1351 | 1359 | __m512i test_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { |
1352 | 1360 | // CHECK-LABEL: @test_mm512_mask_mulhi_epu16 |
1353 | 1361 | // CHECK: @llvm.x86.avx512.pmulhu.w.512 |
1354 | 1362 | // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} |
1355 | 1363 | return _mm512_mask_mulhi_epu16(__W,__U,__A,__B); |
1356 | 1364 | } |
| 1365 | + |
1357 | 1366 | __m512i test_mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) { |
1358 | 1367 | // CHECK-LABEL: @test_mm512_maskz_mulhi_epu16 |
1359 | 1368 | // CHECK: @llvm.x86.avx512.pmulhu.w.512 |
|
0 commit comments