brintos

brintos / llvm-project-archived public Read only

0
0
Text · 40.5 KiB · b482466 Raw
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