@@ -1947,18 +1947,24 @@ __m256h test_mm256_cvtepu16_ph(__m256i A) {
1947
1947
return _mm256_cvtepu16_ph (A );
1948
1948
}
1949
1949
1950
+ TEST_CONSTEXPR (match_m256h (_mm256_cvtepu16_ph ((__m256i )(__v16hu ){1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 16 , 16 , 32 , 32 , 64 , 64 , 128 , 128 }),1.0 , 1.0 , 2.0 , 2.0 , 4.0 , 4.0 , 8.0 , 8.0 , 16.0 , 16.0 , 32.0 , 32.0 , 64.0 , 64.0 , 128.0 , 128.0 ));
1951
+
1950
1952
__m256h test_mm256_mask_cvtepu16_ph (__m256h A , __mmask16 B , __m256i C ) {
1951
1953
// CHECK-LABEL: test_mm256_mask_cvtepu16_ph
1952
1954
// CHECK: %{{.*}} = uitofp <16 x i16> %{{.*}} to <16 x half>
1953
1955
return _mm256_mask_cvtepu16_ph (A , B , C );
1954
1956
}
1955
1957
1958
+ TEST_CONSTEXPR (match_m256h (_mm256_mask_cvtepu16_ph (_mm256_set1_ph (-999.0 ),/*1100 1001 1110 1000=*/ 0xc9e8 ,(__m256i )(__v16hu ){ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 }), -999.0 , -999.0 , -999.0 , 4.0 , -999.0 , 6.0 , 7.0 , 8.0 , 9.0 , -999.0 , -999.0 , 12.0 , -999.0 , -999.0 , 15.0 , 16.0 ));
1959
+
1956
1960
__m256h test_mm256_maskz_cvtepu16_ph (__mmask16 A , __m256i B ) {
1957
1961
// CHECK-LABEL: test_mm256_maskz_cvtepu16_ph
1958
1962
// CHECK: %{{.*}} = uitofp <16 x i16> %{{.*}} to <16 x half>
1959
1963
return _mm256_maskz_cvtepu16_ph (A , B );
1960
1964
}
1961
1965
1966
+ TEST_CONSTEXPR (match_m256h (_mm256_maskz_cvtepu16_ph (/*1100 1001 1110 1000=*/ 0xc9e8 ,(__m256i )(__v16hu ){ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 }), 0.0 , 0.0 , 0.0 , 4.0 , 0.0 , 6.0 , 7.0 , 8.0 , 9.0 , 0.0 , 0.0 , 12.0 , 0.0 , 0.0 , 15.0 , 16.0 ));
1967
+
1962
1968
__m128i test_mm_cvtph_epi32 (__m128h A ) {
1963
1969
// CHECK-LABEL: test_mm_cvtph_epi32
1964
1970
// CHECK: @llvm.x86.avx512fp16.mask.vcvtph2dq.128
@@ -2055,18 +2061,24 @@ __m128h test_mm256_cvtepi32_ph(__m256i A) {
2055
2061
return _mm256_cvtepi32_ph (A );
2056
2062
}
2057
2063
2064
+ TEST_CONSTEXPR (match_m128h (_mm256_cvtepi32_ph ((__m256i )(__v8si ){-1 , -1 , 2 , 2 , -4 , -4 , 6 , 6 }), -1.0 , -1.0 , 2.0 , 2.0 , -4.0 , -4.0 , 6.0 , 6.0 ));
2065
+
2058
2066
__m128h test_mm256_mask_cvtepi32_ph (__m128h A , __mmask8 B , __m256i C ) {
2059
2067
// CHECK-LABEL: test_mm256_mask_cvtepi32_ph
2060
2068
// CHECK: %{{.*}} = sitofp <8 x i32> %{{.*}} to <8 x half>
2061
2069
return _mm256_mask_cvtepi32_ph (A , B , C );
2062
2070
}
2063
2071
2072
+ TEST_CONSTEXPR (match_m128h (_mm256_mask_cvtepi32_ph (_mm_set1_ph (-999.0 ),/*1001 0011=*/ 0x93 ,(__m256i )(__v8si ){1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }), 1.0 , 2.0 , -999.0 , -999.0 , 5.0 , -999.0 , -999.0 , 8.0 ));
2073
+
2064
2074
__m128h test_mm256_maskz_cvtepi32_ph (__mmask8 A , __m256i B ) {
2065
2075
// CHECK-LABEL: test_mm256_maskz_cvtepi32_ph
2066
2076
// CHECK: %{{.*}} = sitofp <8 x i32> %{{.*}} to <8 x half>
2067
2077
return _mm256_maskz_cvtepi32_ph (A , B );
2068
2078
}
2069
2079
2080
+ TEST_CONSTEXPR (match_m128h (_mm256_maskz_cvtepi32_ph (/*1001 0011=*/ 0x93 , (__m256i )(__v8si ){1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 }), 1.0 , 1.0 , 0.0 , 0.0 , 4.0 , 0.0 , 0.0 , 8.0 ));
2081
+
2070
2082
__m128h test_mm_cvtepu32_ph (__m128i A ) {
2071
2083
// CHECK-LABEL: test_mm_cvtepu32_ph
2072
2084
// CHECK: @llvm.x86.avx512fp16.mask.vcvtudq2ph.128
@@ -2091,18 +2103,24 @@ __m128h test_mm256_cvtepu32_ph(__m256i A) {
2091
2103
return _mm256_cvtepu32_ph (A );
2092
2104
}
2093
2105
2106
+ TEST_CONSTEXPR (match_m128h ( _mm256_cvtepu32_ph ((__m256i )(__v8su ){1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }), 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 ));
2107
+
2094
2108
__m128h test_mm256_mask_cvtepu32_ph (__m128h A , __mmask8 B , __m256i C ) {
2095
2109
// CHECK-LABEL: test_mm256_mask_cvtepu32_ph
2096
2110
// CHECK: %{{.*}} = uitofp <8 x i32> %{{.*}} to <8 x half>
2097
2111
return _mm256_mask_cvtepu32_ph (A , B , C );
2098
2112
}
2099
2113
2114
+ TEST_CONSTEXPR (match_m128h ( _mm256_mask_cvtepu32_ph (_mm_set1_ph (-999.0 ),/*1001 0011=*/ 0x93 ,(__m256i )(__v8su ){1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }), 1.0 , 2.0 , -999.0 , -999.0 , 5.0 , -999.0 , -999.0 , 8.0 ));
2115
+
2100
2116
__m128h test_mm256_maskz_cvtepu32_ph (__mmask8 A , __m256i B ) {
2101
2117
// CHECK-LABEL: test_mm256_maskz_cvtepu32_ph
2102
2118
// CHECK: %{{.*}} = uitofp <8 x i32> %{{.*}} to <8 x half>
2103
2119
return _mm256_maskz_cvtepu32_ph (A , B );
2104
2120
}
2105
2121
2122
+ TEST_CONSTEXPR (match_m128h (_mm256_maskz_cvtepu32_ph (/*1001 0011=*/ 0x93 , (__m256i )(__v8su ){1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 }), 1.0 , 1.0 , 0.0 , 0.0 , 4.0 , 0.0 , 0.0 , 8.0 ));
2123
+
2106
2124
__m128i test_mm_cvttph_epi32 (__m128h A ) {
2107
2125
// CHECK-LABEL: test_mm_cvttph_epi32
2108
2126
// CHECK: @llvm.x86.avx512fp16.mask.vcvttph2dq.128
0 commit comments