400 lines · c
1// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512fp16 -target-feature +avx512vl -emit-llvm -ffp-exception-behavior=strict -o - -Wall -Werror | FileCheck %s2 3#include <immintrin.h>4 5__mmask32 test_mm512_cmp_round_ph_mask(__m512h a, __m512h b) {6 // CHECK-LABEL: @test_mm512_cmp_round_ph_mask7 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 0, <32 x i1> {{.*}}, i32 8)8 return _mm512_cmp_round_ph_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);9}10 11__mmask32 test_mm512_mask_cmp_round_ph_mask(__mmask32 m, __m512h a, __m512h b) {12 // CHECK-LABEL: @test_mm512_mask_cmp_round_ph_mask13 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 0, <32 x i1> {{.*}}, i32 8)14 return _mm512_mask_cmp_round_ph_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);15}16 17__mmask8 test_mm_cmp_ph_mask_eq_oq(__m128h a, __m128h b) {18 // CHECK-LABEL: @test_mm_cmp_ph_mask_eq_oq19 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 0, <8 x i1> {{.*}})20 return _mm_cmp_ph_mask(a, b, _CMP_EQ_OQ);21}22 23__mmask8 test_mm_cmp_ph_mask_lt_os(__m128h a, __m128h b) {24 // CHECK-LABEL: test_mm_cmp_ph_mask_lt_os25 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 1, <8 x i1> {{.*}})26 return _mm_cmp_ph_mask(a, b, _CMP_LT_OS);27}28 29__mmask8 test_mm_cmp_ph_mask_le_os(__m128h a, __m128h b) {30 // CHECK-LABEL: test_mm_cmp_ph_mask_le_os31 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 2, <8 x i1> {{.*}})32 return _mm_cmp_ph_mask(a, b, _CMP_LE_OS);33}34 35__mmask8 test_mm_cmp_ph_mask_unord_q(__m128h a, __m128h b) {36 // CHECK-LABEL: test_mm_cmp_ph_mask_unord_q37 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 3, <8 x i1> {{.*}})38 return _mm_cmp_ph_mask(a, b, _CMP_UNORD_Q);39}40 41__mmask8 test_mm_cmp_ph_mask_neq_uq(__m128h a, __m128h b) {42 // CHECK-LABEL: test_mm_cmp_ph_mask_neq_uq43 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 4, <8 x i1> {{.*}})44 return _mm_cmp_ph_mask(a, b, _CMP_NEQ_UQ);45}46 47__mmask8 test_mm_cmp_ph_mask_nlt_us(__m128h a, __m128h b) {48 // CHECK-LABEL: test_mm_cmp_ph_mask_nlt_us49 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 5, <8 x i1> {{.*}})50 return _mm_cmp_ph_mask(a, b, _CMP_NLT_US);51}52 53__mmask8 test_mm_cmp_ph_mask_nle_us(__m128h a, __m128h b) {54 // CHECK-LABEL: test_mm_cmp_ph_mask_nle_us55 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 6, <8 x i1> {{.*}})56 return _mm_cmp_ph_mask(a, b, _CMP_NLE_US);57}58 59__mmask8 test_mm_cmp_ph_mask_ord_q(__m128h a, __m128h b) {60 // CHECK-LABEL: test_mm_cmp_ph_mask_ord_q61 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 7, <8 x i1> {{.*}})62 return _mm_cmp_ph_mask(a, b, _CMP_ORD_Q);63}64 65__mmask8 test_mm_cmp_ph_mask_eq_uq(__m128h a, __m128h b) {66 // CHECK-LABEL: test_mm_cmp_ph_mask_eq_uq67 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 8, <8 x i1> {{.*}})68 return _mm_cmp_ph_mask(a, b, _CMP_EQ_UQ);69}70 71__mmask8 test_mm_cmp_ph_mask_nge_us(__m128h a, __m128h b) {72 // CHECK-LABEL: test_mm_cmp_ph_mask_nge_us73 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 9, <8 x i1> {{.*}})74 return _mm_cmp_ph_mask(a, b, _CMP_NGE_US);75}76 77__mmask8 test_mm_cmp_ph_mask_ngt_us(__m128h a, __m128h b) {78 // CHECK-LABEL: test_mm_cmp_ph_mask_ngt_us79 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 10, <8 x i1> {{.*}})80 return _mm_cmp_ph_mask(a, b, _CMP_NGT_US);81}82 83__mmask8 test_mm_cmp_ph_mask_false_oq(__m128h a, __m128h b) {84 // CHECK-LABEL: test_mm_cmp_ph_mask_false_oq85 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 11, <8 x i1> {{.*}})86 return _mm_cmp_ph_mask(a, b, _CMP_FALSE_OQ);87}88 89__mmask8 test_mm_cmp_ph_mask_neq_oq(__m128h a, __m128h b) {90 // CHECK-LABEL: test_mm_cmp_ph_mask_neq_oq91 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 12, <8 x i1> {{.*}})92 return _mm_cmp_ph_mask(a, b, _CMP_NEQ_OQ);93}94 95__mmask8 test_mm_cmp_ph_mask_ge_os(__m128h a, __m128h b) {96 // CHECK-LABEL: test_mm_cmp_ph_mask_ge_os97 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 13, <8 x i1> {{.*}})98 return _mm_cmp_ph_mask(a, b, _CMP_GE_OS);99}100 101__mmask8 test_mm_cmp_ph_mask_gt_os(__m128h a, __m128h b) {102 // CHECK-LABEL: test_mm_cmp_ph_mask_gt_os103 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 14, <8 x i1> {{.*}})104 return _mm_cmp_ph_mask(a, b, _CMP_GT_OS);105}106 107__mmask8 test_mm_cmp_ph_mask_true_uq(__m128h a, __m128h b) {108 // CHECK-LABEL: test_mm_cmp_ph_mask_true_uq109 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 15, <8 x i1> {{.*}})110 return _mm_cmp_ph_mask(a, b, _CMP_TRUE_UQ);111}112 113__mmask8 test_mm_cmp_ph_mask_eq_os(__m128h a, __m128h b) {114 // CHECK-LABEL: test_mm_cmp_ph_mask_eq_os115 // CHECK: call <8 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.128(<8 x half> %{{.*}}, <8 x half> %{{.*}}, i32 16, <8 x i1> {{.*}})116 return _mm_cmp_ph_mask(a, b, _CMP_EQ_OS);117}118 119__mmask16 test_mm256_cmp_ph_mask_lt_oq(__m256h a, __m256h b) {120 // CHECK-LABEL: test_mm256_cmp_ph_mask_lt_oq121 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 17, <16 x i1> {{.*}})122 return _mm256_cmp_ph_mask(a, b, _CMP_LT_OQ);123}124 125__mmask16 test_mm256_cmp_ph_mask_le_oq(__m256h a, __m256h b) {126 // CHECK-LABEL: test_mm256_cmp_ph_mask_le_oq127 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 18, <16 x i1> {{.*}})128 return _mm256_cmp_ph_mask(a, b, _CMP_LE_OQ);129}130 131__mmask16 test_mm256_cmp_ph_mask_unord_s(__m256h a, __m256h b) {132 // CHECK-LABEL: test_mm256_cmp_ph_mask_unord_s133 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 19, <16 x i1> {{.*}})134 return _mm256_cmp_ph_mask(a, b, _CMP_UNORD_S);135}136 137__mmask16 test_mm256_cmp_ph_mask_neq_us(__m256h a, __m256h b) {138 // CHECK-LABEL: test_mm256_cmp_ph_mask_neq_us139 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 20, <16 x i1> {{.*}})140 return _mm256_cmp_ph_mask(a, b, _CMP_NEQ_US);141}142 143__mmask16 test_mm256_cmp_ph_mask_nlt_uq(__m256h a, __m256h b) {144 // CHECK-LABEL: test_mm256_cmp_ph_mask_nlt_uq145 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 21, <16 x i1> {{.*}})146 return _mm256_cmp_ph_mask(a, b, _CMP_NLT_UQ);147}148 149__mmask16 test_mm256_cmp_ph_mask_nle_uq(__m256h a, __m256h b) {150 // CHECK-LABEL: test_mm256_cmp_ph_mask_nle_uq151 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 22, <16 x i1> {{.*}})152 return _mm256_cmp_ph_mask(a, b, _CMP_NLE_UQ);153}154 155__mmask16 test_mm256_cmp_ph_mask_ord_s(__m256h a, __m256h b) {156 // CHECK-LABEL: test_mm256_cmp_ph_mask_ord_s157 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 23, <16 x i1> {{.*}})158 return _mm256_cmp_ph_mask(a, b, _CMP_ORD_S);159}160 161__mmask16 test_mm256_cmp_ph_mask_eq_us(__m256h a, __m256h b) {162 // CHECK-LABEL: test_mm256_cmp_ph_mask_eq_us163 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 24, <16 x i1> {{.*}})164 return _mm256_cmp_ph_mask(a, b, _CMP_EQ_US);165}166 167__mmask16 test_mm256_cmp_ph_mask_nge_uq(__m256h a, __m256h b) {168 // CHECK-LABEL: test_mm256_cmp_ph_mask_nge_uq169 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 25, <16 x i1> {{.*}})170 return _mm256_cmp_ph_mask(a, b, _CMP_NGE_UQ);171}172 173__mmask16 test_mm256_cmp_ph_mask_ngt_uq(__m256h a, __m256h b) {174 // CHECK-LABEL: test_mm256_cmp_ph_mask_ngt_uq175 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 26, <16 x i1> {{.*}})176 return _mm256_cmp_ph_mask(a, b, _CMP_NGT_UQ);177}178 179__mmask16 test_mm256_cmp_ph_mask_false_os(__m256h a, __m256h b) {180 // CHECK-LABEL: test_mm256_cmp_ph_mask_false_os181 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 27, <16 x i1> {{.*}})182 return _mm256_cmp_ph_mask(a, b, _CMP_FALSE_OS);183}184 185__mmask16 test_mm256_cmp_ph_mask_neq_os(__m256h a, __m256h b) {186 // CHECK-LABEL: test_mm256_cmp_ph_mask_neq_os187 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 28, <16 x i1> {{.*}})188 return _mm256_cmp_ph_mask(a, b, _CMP_NEQ_OS);189}190 191__mmask16 test_mm256_cmp_ph_mask_ge_oq(__m256h a, __m256h b) {192 // CHECK-LABEL: test_mm256_cmp_ph_mask_ge_oq193 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 29, <16 x i1> {{.*}})194 return _mm256_cmp_ph_mask(a, b, _CMP_GE_OQ);195}196 197__mmask16 test_mm256_cmp_ph_mask_gt_oq(__m256h a, __m256h b) {198 // CHECK-LABEL: test_mm256_cmp_ph_mask_gt_oq199 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 30, <16 x i1> {{.*}})200 return _mm256_cmp_ph_mask(a, b, _CMP_GT_OQ);201}202 203__mmask16 test_mm256_cmp_ph_mask_true_us(__m256h a, __m256h b) {204 // CHECK-LABEL: test_mm256_cmp_ph_mask_true_us205 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 31, <16 x i1> {{.*}})206 return _mm256_cmp_ph_mask(a, b, _CMP_TRUE_US);207}208 209__mmask16 test_mm256_mask_cmp_ph_mask_eq_oq(__mmask16 m, __m256h a, __m256h b) {210 // CHECK-LABEL: @test_mm256_mask_cmp_ph_mask_eq_oq211 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 0, <16 x i1> {{.*}})212 return _mm256_mask_cmp_ph_mask(m, a, b, _CMP_EQ_OQ);213}214 215__mmask16 test_mm256_mask_cmp_ph_mask_lt_os(__mmask16 m, __m256h a, __m256h b) {216 // CHECK-LABEL: test_mm256_mask_cmp_ph_mask_lt_os217 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 1, <16 x i1> {{.*}})218 return _mm256_mask_cmp_ph_mask(m, a, b, _CMP_LT_OS);219}220 221__mmask16 test_mm256_mask_cmp_ph_mask_le_os(__mmask16 m, __m256h a, __m256h b) {222 // CHECK-LABEL: test_mm256_mask_cmp_ph_mask_le_os223 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 2, <16 x i1> {{.*}})224 return _mm256_mask_cmp_ph_mask(m, a, b, _CMP_LE_OS);225}226 227__mmask16 test_mm256_mask_cmp_ph_mask_unord_q(__mmask16 m, __m256h a, __m256h b) {228 // CHECK-LABEL: test_mm256_mask_cmp_ph_mask_unord_q229 // CHECK: call <16 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 3, <16 x i1> {{.*}})230 return _mm256_mask_cmp_ph_mask(m, a, b, _CMP_UNORD_Q);231}232 233__mmask32 test_mm512_mask_cmp_ph_mask_neq_uq(__mmask32 m, __m512h a, __m512h b) {234 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_neq_uq235 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 4, <32 x i1> {{.*}})236 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NEQ_UQ);237}238 239__mmask32 test_mm512_mask_cmp_ph_mask_nlt_us(__mmask32 m, __m512h a, __m512h b) {240 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nlt_us241 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 5, <32 x i1> {{.*}})242 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NLT_US);243}244 245__mmask32 test_mm512_mask_cmp_ph_mask_nle_us(__mmask32 m, __m512h a, __m512h b) {246 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nle_us247 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 6, <32 x i1> {{.*}})248 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NLE_US);249}250 251__mmask32 test_mm512_mask_cmp_ph_mask_ord_q(__mmask32 m, __m512h a, __m512h b) {252 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ord_q253 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 7, <32 x i1> {{.*}})254 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_ORD_Q);255}256 257__mmask32 test_mm512_mask_cmp_ph_mask_eq_uq(__mmask32 m, __m512h a, __m512h b) {258 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_eq_uq259 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 8, <32 x i1> {{.*}})260 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_EQ_UQ);261}262 263__mmask32 test_mm512_mask_cmp_ph_mask_nge_us(__mmask32 m, __m512h a, __m512h b) {264 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nge_us265 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 9, <32 x i1> {{.*}})266 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NGE_US);267}268 269__mmask32 test_mm512_mask_cmp_ph_mask_ngt_us(__mmask32 m, __m512h a, __m512h b) {270 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ngt_us271 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 10, <32 x i1> {{.*}})272 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NGT_US);273}274 275__mmask32 test_mm512_mask_cmp_ph_mask_false_oq(__mmask32 m, __m512h a, __m512h b) {276 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_false_oq277 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 11, <32 x i1> {{.*}})278 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_FALSE_OQ);279}280 281__mmask32 test_mm512_mask_cmp_ph_mask_neq_oq(__mmask32 m, __m512h a, __m512h b) {282 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_neq_oq283 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 12, <32 x i1> {{.*}})284 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NEQ_OQ);285}286 287__mmask32 test_mm512_mask_cmp_ph_mask_ge_os(__mmask32 m, __m512h a, __m512h b) {288 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ge_os289 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 13, <32 x i1> {{.*}})290 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_GE_OS);291}292 293__mmask32 test_mm512_mask_cmp_ph_mask_gt_os(__mmask32 m, __m512h a, __m512h b) {294 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_gt_os295 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 14, <32 x i1> {{.*}})296 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_GT_OS);297}298 299__mmask32 test_mm512_mask_cmp_ph_mask_true_uq(__mmask32 m, __m512h a, __m512h b) {300 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_true_uq301 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 15, <32 x i1> {{.*}})302 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_TRUE_UQ);303}304 305__mmask32 test_mm512_mask_cmp_ph_mask_eq_os(__mmask32 m, __m512h a, __m512h b) {306 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_eq_os307 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 16, <32 x i1> {{.*}})308 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_EQ_OS);309}310 311__mmask32 test_mm512_mask_cmp_ph_mask_lt_oq(__mmask32 m, __m512h a, __m512h b) {312 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_lt_oq313 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 17, <32 x i1> {{.*}})314 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_LT_OQ);315}316 317__mmask32 test_mm512_mask_cmp_ph_mask_le_oq(__mmask32 m, __m512h a, __m512h b) {318 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_le_oq319 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 18, <32 x i1> {{.*}})320 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_LE_OQ);321}322 323__mmask32 test_mm512_mask_cmp_ph_mask_unord_s(__mmask32 m, __m512h a, __m512h b) {324 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_unord_s325 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 19, <32 x i1> {{.*}})326 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_UNORD_S);327}328 329__mmask32 test_mm512_mask_cmp_ph_mask_neq_us(__mmask32 m, __m512h a, __m512h b) {330 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_neq_us331 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 20, <32 x i1> {{.*}})332 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NEQ_US);333}334 335__mmask32 test_mm512_mask_cmp_ph_mask_nlt_uq(__mmask32 m, __m512h a, __m512h b) {336 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nlt_uq337 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 21, <32 x i1> {{.*}})338 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NLT_UQ);339}340 341__mmask32 test_mm512_mask_cmp_ph_mask_nle_uq(__mmask32 m, __m512h a, __m512h b) {342 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nle_uq343 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 22, <32 x i1> {{.*}})344 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NLE_UQ);345}346 347__mmask32 test_mm512_mask_cmp_ph_mask_ord_s(__mmask32 m, __m512h a, __m512h b) {348 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ord_s349 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 23, <32 x i1> {{.*}})350 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_ORD_S);351}352 353__mmask32 test_mm512_mask_cmp_ph_mask_eq_us(__mmask32 m, __m512h a, __m512h b) {354 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_eq_us355 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 24, <32 x i1> {{.*}})356 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_EQ_US);357}358 359__mmask32 test_mm512_mask_cmp_ph_mask_nge_uq(__mmask32 m, __m512h a, __m512h b) {360 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_nge_uq361 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 25, <32 x i1> {{.*}})362 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NGE_UQ);363}364 365__mmask32 test_mm512_mask_cmp_ph_mask_ngt_uq(__mmask32 m, __m512h a, __m512h b) {366 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ngt_uq367 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 26, <32 x i1> {{.*}})368 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NGT_UQ);369}370 371__mmask32 test_mm512_mask_cmp_ph_mask_false_os(__mmask32 m, __m512h a, __m512h b) {372 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_false_os373 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 27, <32 x i1> {{.*}})374 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_FALSE_OS);375}376 377__mmask32 test_mm512_mask_cmp_ph_mask_neq_os(__mmask32 m, __m512h a, __m512h b) {378 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_neq_os379 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 28, <32 x i1> {{.*}})380 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_NEQ_OS);381}382 383__mmask32 test_mm512_mask_cmp_ph_mask_ge_oq(__mmask32 m, __m512h a, __m512h b) {384 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_ge_oq385 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 29, <32 x i1> {{.*}})386 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_GE_OQ);387}388 389__mmask32 test_mm512_mask_cmp_ph_mask_gt_oq(__mmask32 m, __m512h a, __m512h b) {390 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_gt_oq391 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 30, <32 x i1> {{.*}})392 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_GT_OQ);393}394 395__mmask32 test_mm512_mask_cmp_ph_mask_true_us(__mmask32 m, __m512h a, __m512h b) {396 // CHECK-LABEL: test_mm512_mask_cmp_ph_mask_true_us397 // CHECK: call <32 x i1> @llvm.x86.avx512fp16.mask.cmp.ph.512(<32 x half> %{{.*}}, <32 x half> %{{.*}}, i32 31, <32 x i1> {{.*}})398 return _mm512_mask_cmp_ph_mask(m, a, b, _CMP_TRUE_US);399}400