796 lines · c
1// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -ffp-exception-behavior=strict -o - -Wall -Werror | FileCheck %s2 3#include <immintrin.h>4 5__mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {6 // CHECK-LABEL: @test_mm512_cmp_round_ps_mask7 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 0, <16 x i1> {{.*}}, i32 8)8 return _mm512_cmp_round_ps_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);9}10 11__mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {12 // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask13 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 0, <16 x i1> {{.*}}, i32 8)14 return _mm512_mask_cmp_round_ps_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);15}16 17__mmask16 test_mm512_cmp_ps_mask_eq_oq(__m512 a, __m512 b) {18 // CHECK-LABEL: @test_mm512_cmp_ps_mask_eq_oq19 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 0, <16 x i1> {{.*}}, i32 4)20 return _mm512_cmp_ps_mask(a, b, _CMP_EQ_OQ);21}22 23__mmask16 test_mm512_cmp_ps_mask_lt_os(__m512 a, __m512 b) {24 // CHECK-LABEL: test_mm512_cmp_ps_mask_lt_os25 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 1, <16 x i1> {{.*}}, i32 4)26 return _mm512_cmp_ps_mask(a, b, _CMP_LT_OS);27}28 29__mmask16 test_mm512_cmp_ps_mask_le_os(__m512 a, __m512 b) {30 // CHECK-LABEL: test_mm512_cmp_ps_mask_le_os31 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 2, <16 x i1> {{.*}}, i32 4)32 return _mm512_cmp_ps_mask(a, b, _CMP_LE_OS);33}34 35__mmask16 test_mm512_cmp_ps_mask_unord_q(__m512 a, __m512 b) {36 // CHECK-LABEL: test_mm512_cmp_ps_mask_unord_q37 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 3, <16 x i1> {{.*}}, i32 4)38 return _mm512_cmp_ps_mask(a, b, _CMP_UNORD_Q);39}40 41__mmask16 test_mm512_cmp_ps_mask_neq_uq(__m512 a, __m512 b) {42 // CHECK-LABEL: test_mm512_cmp_ps_mask_neq_uq43 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 4, <16 x i1> {{.*}}, i32 4)44 return _mm512_cmp_ps_mask(a, b, _CMP_NEQ_UQ);45}46 47__mmask16 test_mm512_cmp_ps_mask_nlt_us(__m512 a, __m512 b) {48 // CHECK-LABEL: test_mm512_cmp_ps_mask_nlt_us49 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 5, <16 x i1> {{.*}}, i32 4)50 return _mm512_cmp_ps_mask(a, b, _CMP_NLT_US);51}52 53__mmask16 test_mm512_cmp_ps_mask_nle_us(__m512 a, __m512 b) {54 // CHECK-LABEL: test_mm512_cmp_ps_mask_nle_us55 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 6, <16 x i1> {{.*}}, i32 4)56 return _mm512_cmp_ps_mask(a, b, _CMP_NLE_US);57}58 59__mmask16 test_mm512_cmp_ps_mask_ord_q(__m512 a, __m512 b) {60 // CHECK-LABEL: test_mm512_cmp_ps_mask_ord_q61 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 7, <16 x i1> {{.*}}, i32 4)62 return _mm512_cmp_ps_mask(a, b, _CMP_ORD_Q);63}64 65__mmask16 test_mm512_cmp_ps_mask_eq_uq(__m512 a, __m512 b) {66 // CHECK-LABEL: test_mm512_cmp_ps_mask_eq_uq67 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 8, <16 x i1> {{.*}}, i32 4)68 return _mm512_cmp_ps_mask(a, b, _CMP_EQ_UQ);69}70 71__mmask16 test_mm512_cmp_ps_mask_nge_us(__m512 a, __m512 b) {72 // CHECK-LABEL: test_mm512_cmp_ps_mask_nge_us73 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 9, <16 x i1> {{.*}}, i32 4)74 return _mm512_cmp_ps_mask(a, b, _CMP_NGE_US);75}76 77__mmask16 test_mm512_cmp_ps_mask_ngt_us(__m512 a, __m512 b) {78 // CHECK-LABEL: test_mm512_cmp_ps_mask_ngt_us79 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 10, <16 x i1> {{.*}}, i32 4)80 return _mm512_cmp_ps_mask(a, b, _CMP_NGT_US);81}82 83__mmask16 test_mm512_cmp_ps_mask_false_oq(__m512 a, __m512 b) {84 // CHECK-LABEL: test_mm512_cmp_ps_mask_false_oq85 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 11, <16 x i1> {{.*}}, i32 4)86 return _mm512_cmp_ps_mask(a, b, _CMP_FALSE_OQ);87}88 89__mmask16 test_mm512_cmp_ps_mask_neq_oq(__m512 a, __m512 b) {90 // CHECK-LABEL: test_mm512_cmp_ps_mask_neq_oq91 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 12, <16 x i1> {{.*}}, i32 4)92 return _mm512_cmp_ps_mask(a, b, _CMP_NEQ_OQ);93}94 95__mmask16 test_mm512_cmp_ps_mask_ge_os(__m512 a, __m512 b) {96 // CHECK-LABEL: test_mm512_cmp_ps_mask_ge_os97 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 13, <16 x i1> {{.*}}, i32 4)98 return _mm512_cmp_ps_mask(a, b, _CMP_GE_OS);99}100 101__mmask16 test_mm512_cmp_ps_mask_gt_os(__m512 a, __m512 b) {102 // CHECK-LABEL: test_mm512_cmp_ps_mask_gt_os103 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 14, <16 x i1> {{.*}}, i32 4)104 return _mm512_cmp_ps_mask(a, b, _CMP_GT_OS);105}106 107__mmask16 test_mm512_cmp_ps_mask_true_uq(__m512 a, __m512 b) {108 // CHECK-LABEL: test_mm512_cmp_ps_mask_true_uq109 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 15, <16 x i1> {{.*}}, i32 4)110 return _mm512_cmp_ps_mask(a, b, _CMP_TRUE_UQ);111}112 113__mmask16 test_mm512_cmp_ps_mask_eq_os(__m512 a, __m512 b) {114 // CHECK-LABEL: test_mm512_cmp_ps_mask_eq_os115 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 16, <16 x i1> {{.*}}, i32 4)116 return _mm512_cmp_ps_mask(a, b, _CMP_EQ_OS);117}118 119__mmask16 test_mm512_cmp_ps_mask_lt_oq(__m512 a, __m512 b) {120 // CHECK-LABEL: test_mm512_cmp_ps_mask_lt_oq121 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 17, <16 x i1> {{.*}}, i32 4)122 return _mm512_cmp_ps_mask(a, b, _CMP_LT_OQ);123}124 125__mmask16 test_mm512_cmp_ps_mask_le_oq(__m512 a, __m512 b) {126 // CHECK-LABEL: test_mm512_cmp_ps_mask_le_oq127 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 18, <16 x i1> {{.*}}, i32 4)128 return _mm512_cmp_ps_mask(a, b, _CMP_LE_OQ);129}130 131__mmask16 test_mm512_cmp_ps_mask_unord_s(__m512 a, __m512 b) {132 // CHECK-LABEL: test_mm512_cmp_ps_mask_unord_s133 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 19, <16 x i1> {{.*}}, i32 4)134 return _mm512_cmp_ps_mask(a, b, _CMP_UNORD_S);135}136 137__mmask16 test_mm512_cmp_ps_mask_neq_us(__m512 a, __m512 b) {138 // CHECK-LABEL: test_mm512_cmp_ps_mask_neq_us139 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 20, <16 x i1> {{.*}}, i32 4)140 return _mm512_cmp_ps_mask(a, b, _CMP_NEQ_US);141}142 143__mmask16 test_mm512_cmp_ps_mask_nlt_uq(__m512 a, __m512 b) {144 // CHECK-LABEL: test_mm512_cmp_ps_mask_nlt_uq145 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 21, <16 x i1> {{.*}}, i32 4)146 return _mm512_cmp_ps_mask(a, b, _CMP_NLT_UQ);147}148 149__mmask16 test_mm512_cmp_ps_mask_nle_uq(__m512 a, __m512 b) {150 // CHECK-LABEL: test_mm512_cmp_ps_mask_nle_uq151 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 22, <16 x i1> {{.*}}, i32 4)152 return _mm512_cmp_ps_mask(a, b, _CMP_NLE_UQ);153}154 155__mmask16 test_mm512_cmp_ps_mask_ord_s(__m512 a, __m512 b) {156 // CHECK-LABEL: test_mm512_cmp_ps_mask_ord_s157 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 23, <16 x i1> {{.*}}, i32 4)158 return _mm512_cmp_ps_mask(a, b, _CMP_ORD_S);159}160 161__mmask16 test_mm512_cmp_ps_mask_eq_us(__m512 a, __m512 b) {162 // CHECK-LABEL: test_mm512_cmp_ps_mask_eq_us163 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 24, <16 x i1> {{.*}}, i32 4)164 return _mm512_cmp_ps_mask(a, b, _CMP_EQ_US);165}166 167__mmask16 test_mm512_cmp_ps_mask_nge_uq(__m512 a, __m512 b) {168 // CHECK-LABEL: test_mm512_cmp_ps_mask_nge_uq169 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 25, <16 x i1> {{.*}}, i32 4)170 return _mm512_cmp_ps_mask(a, b, _CMP_NGE_UQ);171}172 173__mmask16 test_mm512_cmp_ps_mask_ngt_uq(__m512 a, __m512 b) {174 // CHECK-LABEL: test_mm512_cmp_ps_mask_ngt_uq175 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 26, <16 x i1> {{.*}}, i32 4)176 return _mm512_cmp_ps_mask(a, b, _CMP_NGT_UQ);177}178 179__mmask16 test_mm512_cmp_ps_mask_false_os(__m512 a, __m512 b) {180 // CHECK-LABEL: test_mm512_cmp_ps_mask_false_os181 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 27, <16 x i1> {{.*}}, i32 4)182 return _mm512_cmp_ps_mask(a, b, _CMP_FALSE_OS);183}184 185__mmask16 test_mm512_cmp_ps_mask_neq_os(__m512 a, __m512 b) {186 // CHECK-LABEL: test_mm512_cmp_ps_mask_neq_os187 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 28, <16 x i1> {{.*}}, i32 4)188 return _mm512_cmp_ps_mask(a, b, _CMP_NEQ_OS);189}190 191__mmask16 test_mm512_cmp_ps_mask_ge_oq(__m512 a, __m512 b) {192 // CHECK-LABEL: test_mm512_cmp_ps_mask_ge_oq193 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 29, <16 x i1> {{.*}}, i32 4)194 return _mm512_cmp_ps_mask(a, b, _CMP_GE_OQ);195}196 197__mmask16 test_mm512_cmp_ps_mask_gt_oq(__m512 a, __m512 b) {198 // CHECK-LABEL: test_mm512_cmp_ps_mask_gt_oq199 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 30, <16 x i1> {{.*}}, i32 4)200 return _mm512_cmp_ps_mask(a, b, _CMP_GT_OQ);201}202 203__mmask16 test_mm512_cmp_ps_mask_true_us(__m512 a, __m512 b) {204 // CHECK-LABEL: test_mm512_cmp_ps_mask_true_us205 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 31, <16 x i1> {{.*}}, i32 4)206 return _mm512_cmp_ps_mask(a, b, _CMP_TRUE_US);207}208 209__mmask16 test_mm512_mask_cmp_ps_mask_eq_oq(__mmask16 m, __m512 a, __m512 b) {210 // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask_eq_oq211 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 0, <16 x i1> {{.*}}, i32 4)212 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);213}214 215__mmask16 test_mm512_mask_cmp_ps_mask_lt_os(__mmask16 m, __m512 a, __m512 b) {216 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_lt_os217 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 1, <16 x i1> {{.*}}, i32 4)218 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);219}220 221__mmask16 test_mm512_mask_cmp_ps_mask_le_os(__mmask16 m, __m512 a, __m512 b) {222 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_le_os223 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 2, <16 x i1> {{.*}}, i32 4)224 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);225}226 227__mmask16 test_mm512_mask_cmp_ps_mask_unord_q(__mmask16 m, __m512 a, __m512 b) {228 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_unord_q229 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 3, <16 x i1> {{.*}}, i32 4)230 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);231}232 233__mmask16 test_mm512_mask_cmp_ps_mask_neq_uq(__mmask16 m, __m512 a, __m512 b) {234 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_neq_uq235 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 4, <16 x i1> {{.*}}, i32 4)236 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);237}238 239__mmask16 test_mm512_mask_cmp_ps_mask_nlt_us(__mmask16 m, __m512 a, __m512 b) {240 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nlt_us241 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 5, <16 x i1> {{.*}}, i32 4)242 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);243}244 245__mmask16 test_mm512_mask_cmp_ps_mask_nle_us(__mmask16 m, __m512 a, __m512 b) {246 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nle_us247 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 6, <16 x i1> {{.*}}, i32 4)248 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);249}250 251__mmask16 test_mm512_mask_cmp_ps_mask_ord_q(__mmask16 m, __m512 a, __m512 b) {252 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ord_q253 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 7, <16 x i1> {{.*}}, i32 4)254 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);255}256 257__mmask16 test_mm512_mask_cmp_ps_mask_eq_uq(__mmask16 m, __m512 a, __m512 b) {258 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_eq_uq259 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 8, <16 x i1> {{.*}}, i32 4)260 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);261}262 263__mmask16 test_mm512_mask_cmp_ps_mask_nge_us(__mmask16 m, __m512 a, __m512 b) {264 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nge_us265 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 9, <16 x i1> {{.*}}, i32 4)266 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);267}268 269__mmask16 test_mm512_mask_cmp_ps_mask_ngt_us(__mmask16 m, __m512 a, __m512 b) {270 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ngt_us271 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 10, <16 x i1> {{.*}}, i32 4)272 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);273}274 275__mmask16 test_mm512_mask_cmp_ps_mask_false_oq(__mmask16 m, __m512 a, __m512 b) {276 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_false_oq277 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 11, <16 x i1> {{.*}}, i32 4)278 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);279}280 281__mmask16 test_mm512_mask_cmp_ps_mask_neq_oq(__mmask16 m, __m512 a, __m512 b) {282 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_neq_oq283 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 12, <16 x i1> {{.*}}, i32 4)284 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);285}286 287__mmask16 test_mm512_mask_cmp_ps_mask_ge_os(__mmask16 m, __m512 a, __m512 b) {288 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ge_os289 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 13, <16 x i1> {{.*}}, i32 4)290 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);291}292 293__mmask16 test_mm512_mask_cmp_ps_mask_gt_os(__mmask16 m, __m512 a, __m512 b) {294 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_gt_os295 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 14, <16 x i1> {{.*}}, i32 4)296 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);297}298 299__mmask16 test_mm512_mask_cmp_ps_mask_true_uq(__mmask16 m, __m512 a, __m512 b) {300 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_true_uq301 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 15, <16 x i1> {{.*}}, i32 4)302 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);303}304 305__mmask16 test_mm512_mask_cmp_ps_mask_eq_os(__mmask16 m, __m512 a, __m512 b) {306 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_eq_os307 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 16, <16 x i1> {{.*}}, i32 4)308 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);309}310 311__mmask16 test_mm512_mask_cmp_ps_mask_lt_oq(__mmask16 m, __m512 a, __m512 b) {312 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_lt_oq313 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 17, <16 x i1> {{.*}}, i32 4)314 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);315}316 317__mmask16 test_mm512_mask_cmp_ps_mask_le_oq(__mmask16 m, __m512 a, __m512 b) {318 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_le_oq319 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 18, <16 x i1> {{.*}}, i32 4)320 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);321}322 323__mmask16 test_mm512_mask_cmp_ps_mask_unord_s(__mmask16 m, __m512 a, __m512 b) {324 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_unord_s325 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 19, <16 x i1> {{.*}}, i32 4)326 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);327}328 329__mmask16 test_mm512_mask_cmp_ps_mask_neq_us(__mmask16 m, __m512 a, __m512 b) {330 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_neq_us331 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 20, <16 x i1> {{.*}}, i32 4)332 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);333}334 335__mmask16 test_mm512_mask_cmp_ps_mask_nlt_uq(__mmask16 m, __m512 a, __m512 b) {336 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nlt_uq337 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 21, <16 x i1> {{.*}}, i32 4)338 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);339}340 341__mmask16 test_mm512_mask_cmp_ps_mask_nle_uq(__mmask16 m, __m512 a, __m512 b) {342 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nle_uq343 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 22, <16 x i1> {{.*}}, i32 4)344 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);345}346 347__mmask16 test_mm512_mask_cmp_ps_mask_ord_s(__mmask16 m, __m512 a, __m512 b) {348 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ord_s349 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 23, <16 x i1> {{.*}}, i32 4)350 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);351}352 353__mmask16 test_mm512_mask_cmp_ps_mask_eq_us(__mmask16 m, __m512 a, __m512 b) {354 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_eq_us355 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 24, <16 x i1> {{.*}}, i32 4)356 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);357}358 359__mmask16 test_mm512_mask_cmp_ps_mask_nge_uq(__mmask16 m, __m512 a, __m512 b) {360 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_nge_uq361 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 25, <16 x i1> {{.*}}, i32 4)362 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);363}364 365__mmask16 test_mm512_mask_cmp_ps_mask_ngt_uq(__mmask16 m, __m512 a, __m512 b) {366 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ngt_uq367 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 26, <16 x i1> {{.*}}, i32 4)368 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);369}370 371__mmask16 test_mm512_mask_cmp_ps_mask_false_os(__mmask16 m, __m512 a, __m512 b) {372 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_false_os373 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 27, <16 x i1> {{.*}}, i32 4)374 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);375}376 377__mmask16 test_mm512_mask_cmp_ps_mask_neq_os(__mmask16 m, __m512 a, __m512 b) {378 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_neq_os379 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 28, <16 x i1> {{.*}}, i32 4)380 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);381}382 383__mmask16 test_mm512_mask_cmp_ps_mask_ge_oq(__mmask16 m, __m512 a, __m512 b) {384 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_ge_oq385 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 29, <16 x i1> {{.*}}, i32 4)386 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);387}388 389__mmask16 test_mm512_mask_cmp_ps_mask_gt_oq(__mmask16 m, __m512 a, __m512 b) {390 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_gt_oq391 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 30, <16 x i1> {{.*}}, i32 4)392 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);393}394 395__mmask16 test_mm512_mask_cmp_ps_mask_true_us(__mmask16 m, __m512 a, __m512 b) {396 // CHECK-LABEL: test_mm512_mask_cmp_ps_mask_true_us397 // CHECK: call <16 x i1> @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %{{.*}}, <16 x float> %{{.*}}, i32 31, <16 x i1> {{.*}}, i32 4)398 return _mm512_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);399}400 401__mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {402 // CHECK-LABEL: @test_mm512_cmp_round_pd_mask403 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 0, <8 x i1> {{.*}}, i32 8)404 return _mm512_cmp_round_pd_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);405}406 407__mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {408 // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask409 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 0, <8 x i1> {{.*}}, i32 8)410 return _mm512_mask_cmp_round_pd_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);411}412 413__mmask8 test_mm512_cmp_pd_mask_eq_oq(__m512d a, __m512d b) {414 // CHECK-LABEL: @test_mm512_cmp_pd_mask_eq_oq415 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 0, <8 x i1> {{.*}}, i32 4)416 return _mm512_cmp_pd_mask(a, b, _CMP_EQ_OQ);417}418 419__mmask8 test_mm512_cmp_pd_mask_lt_os(__m512d a, __m512d b) {420 // CHECK-LABEL: test_mm512_cmp_pd_mask_lt_os421 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 1, <8 x i1> {{.*}}, i32 4)422 return _mm512_cmp_pd_mask(a, b, _CMP_LT_OS);423}424 425__mmask8 test_mm512_cmp_pd_mask_le_os(__m512d a, __m512d b) {426 // CHECK-LABEL: test_mm512_cmp_pd_mask_le_os427 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 2, <8 x i1> {{.*}}, i32 4)428 return _mm512_cmp_pd_mask(a, b, _CMP_LE_OS);429}430 431__mmask8 test_mm512_cmp_pd_mask_unord_q(__m512d a, __m512d b) {432 // CHECK-LABEL: test_mm512_cmp_pd_mask_unord_q433 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 3, <8 x i1> {{.*}}, i32 4)434 return _mm512_cmp_pd_mask(a, b, _CMP_UNORD_Q);435}436 437__mmask8 test_mm512_cmp_pd_mask_neq_uq(__m512d a, __m512d b) {438 // CHECK-LABEL: test_mm512_cmp_pd_mask_neq_uq439 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 4, <8 x i1> {{.*}}, i32 4)440 return _mm512_cmp_pd_mask(a, b, _CMP_NEQ_UQ);441}442 443__mmask8 test_mm512_cmp_pd_mask_nlt_us(__m512d a, __m512d b) {444 // CHECK-LABEL: test_mm512_cmp_pd_mask_nlt_us445 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 5, <8 x i1> {{.*}}, i32 4)446 return _mm512_cmp_pd_mask(a, b, _CMP_NLT_US);447}448 449__mmask8 test_mm512_cmp_pd_mask_nle_us(__m512d a, __m512d b) {450 // CHECK-LABEL: test_mm512_cmp_pd_mask_nle_us451 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 6, <8 x i1> {{.*}}, i32 4)452 return _mm512_cmp_pd_mask(a, b, _CMP_NLE_US);453}454 455__mmask8 test_mm512_cmp_pd_mask_ord_q(__m512d a, __m512d b) {456 // CHECK-LABEL: test_mm512_cmp_pd_mask_ord_q457 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 7, <8 x i1> {{.*}}, i32 4)458 return _mm512_cmp_pd_mask(a, b, _CMP_ORD_Q);459}460 461__mmask8 test_mm512_cmp_pd_mask_eq_uq(__m512d a, __m512d b) {462 // CHECK-LABEL: test_mm512_cmp_pd_mask_eq_uq463 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 8, <8 x i1> {{.*}}, i32 4)464 return _mm512_cmp_pd_mask(a, b, _CMP_EQ_UQ);465}466 467__mmask8 test_mm512_cmp_pd_mask_nge_us(__m512d a, __m512d b) {468 // CHECK-LABEL: test_mm512_cmp_pd_mask_nge_us469 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 9, <8 x i1> {{.*}}, i32 4)470 return _mm512_cmp_pd_mask(a, b, _CMP_NGE_US);471}472 473__mmask8 test_mm512_cmp_pd_mask_ngt_us(__m512d a, __m512d b) {474 // CHECK-LABEL: test_mm512_cmp_pd_mask_ngt_us475 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 10, <8 x i1> {{.*}}, i32 4)476 return _mm512_cmp_pd_mask(a, b, _CMP_NGT_US);477}478 479__mmask8 test_mm512_cmp_pd_mask_false_oq(__m512d a, __m512d b) {480 // CHECK-LABEL: test_mm512_cmp_pd_mask_false_oq481 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 11, <8 x i1> {{.*}}, i32 4)482 return _mm512_cmp_pd_mask(a, b, _CMP_FALSE_OQ);483}484 485__mmask8 test_mm512_cmp_pd_mask_neq_oq(__m512d a, __m512d b) {486 // CHECK-LABEL: test_mm512_cmp_pd_mask_neq_oq487 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 12, <8 x i1> {{.*}}, i32 4)488 return _mm512_cmp_pd_mask(a, b, _CMP_NEQ_OQ);489}490 491__mmask8 test_mm512_cmp_pd_mask_ge_os(__m512d a, __m512d b) {492 // CHECK-LABEL: test_mm512_cmp_pd_mask_ge_os493 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 13, <8 x i1> {{.*}}, i32 4)494 return _mm512_cmp_pd_mask(a, b, _CMP_GE_OS);495}496 497__mmask8 test_mm512_cmp_pd_mask_gt_os(__m512d a, __m512d b) {498 // CHECK-LABEL: test_mm512_cmp_pd_mask_gt_os499 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 14, <8 x i1> {{.*}}, i32 4)500 return _mm512_cmp_pd_mask(a, b, _CMP_GT_OS);501}502 503__mmask8 test_mm512_cmp_pd_mask_true_uq(__m512d a, __m512d b) {504 // CHECK-LABEL: test_mm512_cmp_pd_mask_true_uq505 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 15, <8 x i1> {{.*}}, i32 4)506 return _mm512_cmp_pd_mask(a, b, _CMP_TRUE_UQ);507}508 509__mmask8 test_mm512_cmp_pd_mask_eq_os(__m512d a, __m512d b) {510 // CHECK-LABEL: test_mm512_cmp_pd_mask_eq_os511 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 16, <8 x i1> {{.*}}, i32 4)512 return _mm512_cmp_pd_mask(a, b, _CMP_EQ_OS);513}514 515__mmask8 test_mm512_cmp_pd_mask_lt_oq(__m512d a, __m512d b) {516 // CHECK-LABEL: test_mm512_cmp_pd_mask_lt_oq517 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 17, <8 x i1> {{.*}}, i32 4)518 return _mm512_cmp_pd_mask(a, b, _CMP_LT_OQ);519}520 521__mmask8 test_mm512_cmp_pd_mask_le_oq(__m512d a, __m512d b) {522 // CHECK-LABEL: test_mm512_cmp_pd_mask_le_oq523 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 18, <8 x i1> {{.*}}, i32 4)524 return _mm512_cmp_pd_mask(a, b, _CMP_LE_OQ);525}526 527__mmask8 test_mm512_cmp_pd_mask_unord_s(__m512d a, __m512d b) {528 // CHECK-LABEL: test_mm512_cmp_pd_mask_unord_s529 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 19, <8 x i1> {{.*}}, i32 4)530 return _mm512_cmp_pd_mask(a, b, _CMP_UNORD_S);531}532 533__mmask8 test_mm512_cmp_pd_mask_neq_us(__m512d a, __m512d b) {534 // CHECK-LABEL: test_mm512_cmp_pd_mask_neq_us535 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 20, <8 x i1> {{.*}}, i32 4)536 return _mm512_cmp_pd_mask(a, b, _CMP_NEQ_US);537}538 539__mmask8 test_mm512_cmp_pd_mask_nlt_uq(__m512d a, __m512d b) {540 // CHECK-LABEL: test_mm512_cmp_pd_mask_nlt_uq541 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 21, <8 x i1> {{.*}}, i32 4)542 return _mm512_cmp_pd_mask(a, b, _CMP_NLT_UQ);543}544 545__mmask8 test_mm512_cmp_pd_mask_nle_uq(__m512d a, __m512d b) {546 // CHECK-LABEL: test_mm512_cmp_pd_mask_nle_uq547 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 22, <8 x i1> {{.*}}, i32 4)548 return _mm512_cmp_pd_mask(a, b, _CMP_NLE_UQ);549}550 551__mmask8 test_mm512_cmp_pd_mask_ord_s(__m512d a, __m512d b) {552 // CHECK-LABEL: test_mm512_cmp_pd_mask_ord_s553 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 23, <8 x i1> {{.*}}, i32 4)554 return _mm512_cmp_pd_mask(a, b, _CMP_ORD_S);555}556 557__mmask8 test_mm512_cmp_pd_mask_eq_us(__m512d a, __m512d b) {558 // CHECK-LABEL: test_mm512_cmp_pd_mask_eq_us559 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 24, <8 x i1> {{.*}}, i32 4)560 return _mm512_cmp_pd_mask(a, b, _CMP_EQ_US);561}562 563__mmask8 test_mm512_cmp_pd_mask_nge_uq(__m512d a, __m512d b) {564 // CHECK-LABEL: test_mm512_cmp_pd_mask_nge_uq565 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 25, <8 x i1> {{.*}}, i32 4)566 return _mm512_cmp_pd_mask(a, b, _CMP_NGE_UQ);567}568 569__mmask8 test_mm512_cmp_pd_mask_ngt_uq(__m512d a, __m512d b) {570 // CHECK-LABEL: test_mm512_cmp_pd_mask_ngt_uq571 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 26, <8 x i1> {{.*}}, i32 4)572 return _mm512_cmp_pd_mask(a, b, _CMP_NGT_UQ);573}574 575__mmask8 test_mm512_cmp_pd_mask_false_os(__m512d a, __m512d b) {576 // CHECK-LABEL: test_mm512_cmp_pd_mask_false_os577 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 27, <8 x i1> {{.*}}, i32 4)578 return _mm512_cmp_pd_mask(a, b, _CMP_FALSE_OS);579}580 581__mmask8 test_mm512_cmp_pd_mask_neq_os(__m512d a, __m512d b) {582 // CHECK-LABEL: test_mm512_cmp_pd_mask_neq_os583 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 28, <8 x i1> {{.*}}, i32 4)584 return _mm512_cmp_pd_mask(a, b, _CMP_NEQ_OS);585}586 587__mmask8 test_mm512_cmp_pd_mask_ge_oq(__m512d a, __m512d b) {588 // CHECK-LABEL: test_mm512_cmp_pd_mask_ge_oq589 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 29, <8 x i1> {{.*}}, i32 4)590 return _mm512_cmp_pd_mask(a, b, _CMP_GE_OQ);591}592 593__mmask8 test_mm512_cmp_pd_mask_gt_oq(__m512d a, __m512d b) {594 // CHECK-LABEL: test_mm512_cmp_pd_mask_gt_oq595 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 30, <8 x i1> {{.*}}, i32 4)596 return _mm512_cmp_pd_mask(a, b, _CMP_GT_OQ);597}598 599__mmask8 test_mm512_cmp_pd_mask_true_us(__m512d a, __m512d b) {600 // CHECK-LABEL: test_mm512_cmp_pd_mask_true_us601 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 31, <8 x i1> {{.*}}, i32 4)602 return _mm512_cmp_pd_mask(a, b, _CMP_TRUE_US);603}604 605__mmask8 test_mm512_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m512d a, __m512d b) {606 // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask_eq_oq607 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 0, <8 x i1> {{.*}}, i32 4)608 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);609}610 611__mmask8 test_mm512_mask_cmp_pd_mask_lt_os(__mmask8 m, __m512d a, __m512d b) {612 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_lt_os613 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 1, <8 x i1> {{.*}}, i32 4)614 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);615}616 617__mmask8 test_mm512_mask_cmp_pd_mask_le_os(__mmask8 m, __m512d a, __m512d b) {618 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_le_os619 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 2, <8 x i1> {{.*}}, i32 4)620 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);621}622 623__mmask8 test_mm512_mask_cmp_pd_mask_unord_q(__mmask8 m, __m512d a, __m512d b) {624 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_unord_q625 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 3, <8 x i1> {{.*}}, i32 4)626 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);627}628 629__mmask8 test_mm512_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m512d a, __m512d b) {630 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_neq_uq631 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 4, <8 x i1> {{.*}}, i32 4)632 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);633}634 635__mmask8 test_mm512_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m512d a, __m512d b) {636 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nlt_us637 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 5, <8 x i1> {{.*}}, i32 4)638 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);639}640 641__mmask8 test_mm512_mask_cmp_pd_mask_nle_us(__mmask8 m, __m512d a, __m512d b) {642 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nle_us643 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 6, <8 x i1> {{.*}}, i32 4)644 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);645}646 647__mmask8 test_mm512_mask_cmp_pd_mask_ord_q(__mmask8 m, __m512d a, __m512d b) {648 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ord_q649 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 7, <8 x i1> {{.*}}, i32 4)650 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);651}652 653__mmask8 test_mm512_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m512d a, __m512d b) {654 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_eq_uq655 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 8, <8 x i1> {{.*}}, i32 4)656 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);657}658 659__mmask8 test_mm512_mask_cmp_pd_mask_nge_us(__mmask8 m, __m512d a, __m512d b) {660 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nge_us661 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 9, <8 x i1> {{.*}}, i32 4)662 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);663}664 665__mmask8 test_mm512_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m512d a, __m512d b) {666 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ngt_us667 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 10, <8 x i1> {{.*}}, i32 4)668 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);669}670 671__mmask8 test_mm512_mask_cmp_pd_mask_false_oq(__mmask8 m, __m512d a, __m512d b) {672 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_false_oq673 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 11, <8 x i1> {{.*}}, i32 4)674 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);675}676 677__mmask8 test_mm512_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m512d a, __m512d b) {678 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_neq_oq679 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 12, <8 x i1> {{.*}}, i32 4)680 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);681}682 683__mmask8 test_mm512_mask_cmp_pd_mask_ge_os(__mmask8 m, __m512d a, __m512d b) {684 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ge_os685 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 13, <8 x i1> {{.*}}, i32 4)686 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);687}688 689__mmask8 test_mm512_mask_cmp_pd_mask_gt_os(__mmask8 m, __m512d a, __m512d b) {690 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_gt_os691 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 14, <8 x i1> {{.*}}, i32 4)692 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);693}694 695__mmask8 test_mm512_mask_cmp_pd_mask_true_uq(__mmask8 m, __m512d a, __m512d b) {696 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_true_uq697 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 15, <8 x i1> {{.*}}, i32 4)698 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);699}700 701__mmask8 test_mm512_mask_cmp_pd_mask_eq_os(__mmask8 m, __m512d a, __m512d b) {702 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_eq_os703 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 16, <8 x i1> {{.*}}, i32 4)704 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);705}706 707__mmask8 test_mm512_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m512d a, __m512d b) {708 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_lt_oq709 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 17, <8 x i1> {{.*}}, i32 4)710 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);711}712 713__mmask8 test_mm512_mask_cmp_pd_mask_le_oq(__mmask8 m, __m512d a, __m512d b) {714 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_le_oq715 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 18, <8 x i1> {{.*}}, i32 4)716 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);717}718 719__mmask8 test_mm512_mask_cmp_pd_mask_unord_s(__mmask8 m, __m512d a, __m512d b) {720 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_unord_s721 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 19, <8 x i1> {{.*}}, i32 4)722 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);723}724 725__mmask8 test_mm512_mask_cmp_pd_mask_neq_us(__mmask8 m, __m512d a, __m512d b) {726 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_neq_us727 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 20, <8 x i1> {{.*}}, i32 4)728 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);729}730 731__mmask8 test_mm512_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m512d a, __m512d b) {732 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nlt_uq733 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 21, <8 x i1> {{.*}}, i32 4)734 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);735}736 737__mmask8 test_mm512_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m512d a, __m512d b) {738 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nle_uq739 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 22, <8 x i1> {{.*}}, i32 4)740 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);741}742 743__mmask8 test_mm512_mask_cmp_pd_mask_ord_s(__mmask8 m, __m512d a, __m512d b) {744 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ord_s745 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 23, <8 x i1> {{.*}}, i32 4)746 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);747}748 749__mmask8 test_mm512_mask_cmp_pd_mask_eq_us(__mmask8 m, __m512d a, __m512d b) {750 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_eq_us751 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 24, <8 x i1> {{.*}}, i32 4)752 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);753}754 755__mmask8 test_mm512_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m512d a, __m512d b) {756 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_nge_uq757 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 25, <8 x i1> {{.*}}, i32 4)758 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);759}760 761__mmask8 test_mm512_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m512d a, __m512d b) {762 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ngt_uq763 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 26, <8 x i1> {{.*}}, i32 4)764 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);765}766 767__mmask8 test_mm512_mask_cmp_pd_mask_false_os(__mmask8 m, __m512d a, __m512d b) {768 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_false_os769 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 27, <8 x i1> {{.*}}, i32 4)770 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);771}772 773__mmask8 test_mm512_mask_cmp_pd_mask_neq_os(__mmask8 m, __m512d a, __m512d b) {774 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_neq_os775 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 28, <8 x i1> {{.*}}, i32 4)776 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);777}778 779__mmask8 test_mm512_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m512d a, __m512d b) {780 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_ge_oq781 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 29, <8 x i1> {{.*}}, i32 4)782 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);783}784 785__mmask8 test_mm512_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m512d a, __m512d b) {786 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_gt_oq787 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 30, <8 x i1> {{.*}}, i32 4)788 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);789}790 791__mmask8 test_mm512_mask_cmp_pd_mask_true_us(__mmask8 m, __m512d a, __m512d b) {792 // CHECK-LABEL: test_mm512_mask_cmp_pd_mask_true_us793 // CHECK: call <8 x i1> @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %{{.*}}, <8 x double> %{{.*}}, i32 31, <8 x i1> {{.*}}, i32 4)794 return _mm512_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);795}796