brintos

brintos / llvm-project-archived public Read only

0
0
Text · 36.7 KiB · 1a40c22 Raw
926 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma4,+xop | FileCheck %s3 4define <2 x double> @test_int_x86_xop_vpermil2pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) {5; CHECK-LABEL: test_int_x86_xop_vpermil2pd:6; CHECK:       # %bb.0:7; CHECK-NEXT:    vpermil2pd $1, %xmm2, %xmm1, %xmm0, %xmm08; CHECK-NEXT:    retq9  %res = call <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 1) ;  [#uses=1]10  ret <2 x double> %res11}12define <2 x double> @test_int_x86_xop_vpermil2pd_mr(<2 x double> %a0, ptr %a1, <2 x double> %a2) {13; CHECK-LABEL: test_int_x86_xop_vpermil2pd_mr:14; CHECK:       # %bb.0:15; CHECK-NEXT:    vpermil2pd $1, %xmm1, (%rdi), %xmm0, %xmm016; CHECK-NEXT:    retq17  %vec = load <2 x double>, ptr %a118  %res = call <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double> %a0, <2 x double> %vec, <2 x double> %a2, i8 1) ;  [#uses=1]19  ret <2 x double> %res20}21define <2 x double> @test_int_x86_xop_vpermil2pd_rm(<2 x double> %a0, <2 x double> %a1, ptr %a2) {22; CHECK-LABEL: test_int_x86_xop_vpermil2pd_rm:23; CHECK:       # %bb.0:24; CHECK-NEXT:    vpermil2pd $1, (%rdi), %xmm1, %xmm0, %xmm025; CHECK-NEXT:    retq26  %vec = load <2 x double>, ptr %a227  %res = call <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %vec, i8 1) ;  [#uses=1]28  ret <2 x double> %res29}30declare <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double>, <2 x double>, <2 x double>, i8) nounwind readnone31 32define <4 x double> @test_int_x86_xop_vpermil2pd_256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) {33; CHECK-LABEL: test_int_x86_xop_vpermil2pd_256:34; CHECK:       # %bb.0:35; CHECK-NEXT:    vpermil2pd $2, %ymm2, %ymm1, %ymm0, %ymm036; CHECK-NEXT:    retq37  %res = call <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 2) ;38  ret <4 x double> %res39}40define <4 x double> @test_int_x86_xop_vpermil2pd_256_mr(<4 x double> %a0, ptr %a1, <4 x double> %a2) {41; CHECK-LABEL: test_int_x86_xop_vpermil2pd_256_mr:42; CHECK:       # %bb.0:43; CHECK-NEXT:    vpermil2pd $2, %ymm1, (%rdi), %ymm0, %ymm044; CHECK-NEXT:    retq45  %vec = load <4 x double>, ptr %a146  %res = call <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double> %a0, <4 x double> %vec, <4 x double> %a2, i8 2) ;47  ret <4 x double> %res48}49define <4 x double> @test_int_x86_xop_vpermil2pd_256_rm(<4 x double> %a0, <4 x double> %a1, ptr %a2) {50; CHECK-LABEL: test_int_x86_xop_vpermil2pd_256_rm:51; CHECK:       # %bb.0:52; CHECK-NEXT:    vpermil2pd $2, (%rdi), %ymm1, %ymm0, %ymm053; CHECK-NEXT:    retq54  %vec = load <4 x double>, ptr %a255  %res = call <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %vec, i8 2) ;56  ret <4 x double> %res57}58declare <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double>, <4 x double>, <4 x double>, i8) nounwind readnone59 60define <4 x float> @test_int_x86_xop_vpermil2ps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) {61; CHECK-LABEL: test_int_x86_xop_vpermil2ps:62; CHECK:       # %bb.0:63; CHECK-NEXT:    vpermil2ps $3, %xmm2, %xmm1, %xmm0, %xmm064; CHECK-NEXT:    retq65  %res = call <4 x float> @llvm.x86.xop.vpermil2ps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 3) ;66  ret <4 x float> %res67}68declare <4 x float> @llvm.x86.xop.vpermil2ps(<4 x float>, <4 x float>, <4 x float>, i8) nounwind readnone69 70define <8 x float> @test_int_x86_xop_vpermil2ps_256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2) {71; CHECK-LABEL: test_int_x86_xop_vpermil2ps_256:72; CHECK:       # %bb.0:73; CHECK-NEXT:    vpermil2ps $4, %ymm2, %ymm1, %ymm0, %ymm074; CHECK-NEXT:    retq75  %res = call <8 x float> @llvm.x86.xop.vpermil2ps.256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 4) ;76  ret <8 x float> %res77}78declare <8 x float> @llvm.x86.xop.vpermil2ps.256(<8 x float>, <8 x float>, <8 x float>, i8) nounwind readnone79 80define <16 x i8> @test_int_x86_xop_vpcomeqb(<16 x i8> %a0, <16 x i8> %a1) {81; CHECK-LABEL: test_int_x86_xop_vpcomeqb:82; CHECK:       # %bb.0:83; CHECK-NEXT:    vpcomeqb %xmm1, %xmm0, %xmm084; CHECK-NEXT:    retq85  %res = call <16 x i8> @llvm.x86.xop.vpcomeqb(<16 x i8> %a0, <16 x i8> %a1) ;86  ret <16 x i8> %res87}88define <16 x i8> @test_int_x86_xop_vpcomeqb_mem(<16 x i8> %a0, ptr %a1) {89; CHECK-LABEL: test_int_x86_xop_vpcomeqb_mem:90; CHECK:       # %bb.0:91; CHECK-NEXT:    vpcomeqb (%rdi), %xmm0, %xmm092; CHECK-NEXT:    retq93  %vec = load <16 x i8>, ptr %a194  %res = call <16 x i8> @llvm.x86.xop.vpcomeqb(<16 x i8> %a0, <16 x i8> %vec) ;95  ret <16 x i8> %res96}97declare <16 x i8> @llvm.x86.xop.vpcomeqb(<16 x i8>, <16 x i8>) nounwind readnone98 99define <8 x i16> @test_int_x86_xop_vpcomeqw(<8 x i16> %a0, <8 x i16> %a1) {100; CHECK-LABEL: test_int_x86_xop_vpcomeqw:101; CHECK:       # %bb.0:102; CHECK-NEXT:    vpcomeqw %xmm1, %xmm0, %xmm0103; CHECK-NEXT:    retq104  %res = call <8 x i16> @llvm.x86.xop.vpcomeqw(<8 x i16> %a0, <8 x i16> %a1) ;105  ret <8 x i16> %res106}107declare <8 x i16> @llvm.x86.xop.vpcomeqw(<8 x i16>, <8 x i16>) nounwind readnone108 109define <4 x i32> @test_int_x86_xop_vpcomeqd(<4 x i32> %a0, <4 x i32> %a1) {110; CHECK-LABEL: test_int_x86_xop_vpcomeqd:111; CHECK:       # %bb.0:112; CHECK-NEXT:    vpcomeqd %xmm1, %xmm0, %xmm0113; CHECK-NEXT:    retq114  %res = call <4 x i32> @llvm.x86.xop.vpcomeqd(<4 x i32> %a0, <4 x i32> %a1) ;115  ret <4 x i32> %res116}117declare <4 x i32> @llvm.x86.xop.vpcomeqd(<4 x i32>, <4 x i32>) nounwind readnone118 119define <2 x i64> @test_int_x86_xop_vpcomeqq(<2 x i64> %a0, <2 x i64> %a1) {120; CHECK-LABEL: test_int_x86_xop_vpcomeqq:121; CHECK:       # %bb.0:122; CHECK-NEXT:    vpcomeqq %xmm1, %xmm0, %xmm0123; CHECK-NEXT:    retq124  %res = call <2 x i64> @llvm.x86.xop.vpcomeqq(<2 x i64> %a0, <2 x i64> %a1) ;125  ret <2 x i64> %res126}127declare <2 x i64> @llvm.x86.xop.vpcomeqq(<2 x i64>, <2 x i64>) nounwind readnone128 129define <16 x i8> @test_int_x86_xop_vpcomequb(<16 x i8> %a0, <16 x i8> %a1) {130; CHECK-LABEL: test_int_x86_xop_vpcomequb:131; CHECK:       # %bb.0:132; CHECK-NEXT:    vpcomeqb %xmm1, %xmm0, %xmm0133; CHECK-NEXT:    retq134  %res = call <16 x i8> @llvm.x86.xop.vpcomequb(<16 x i8> %a0, <16 x i8> %a1) ;135  ret <16 x i8> %res136}137declare <16 x i8> @llvm.x86.xop.vpcomequb(<16 x i8>, <16 x i8>) nounwind readnone138 139define <4 x i32> @test_int_x86_xop_vpcomequd(<4 x i32> %a0, <4 x i32> %a1) {140; CHECK-LABEL: test_int_x86_xop_vpcomequd:141; CHECK:       # %bb.0:142; CHECK-NEXT:    vpcomeqd %xmm1, %xmm0, %xmm0143; CHECK-NEXT:    retq144  %res = call <4 x i32> @llvm.x86.xop.vpcomequd(<4 x i32> %a0, <4 x i32> %a1) ;145  ret <4 x i32> %res146}147declare <4 x i32> @llvm.x86.xop.vpcomequd(<4 x i32>, <4 x i32>) nounwind readnone148 149define <2 x i64> @test_int_x86_xop_vpcomequq(<2 x i64> %a0, <2 x i64> %a1) {150; CHECK-LABEL: test_int_x86_xop_vpcomequq:151; CHECK:       # %bb.0:152; CHECK-NEXT:    vpcomeqq %xmm1, %xmm0, %xmm0153; CHECK-NEXT:    retq154  %res = call <2 x i64> @llvm.x86.xop.vpcomequq(<2 x i64> %a0, <2 x i64> %a1) ;155  ret <2 x i64> %res156}157declare <2 x i64> @llvm.x86.xop.vpcomequq(<2 x i64>, <2 x i64>) nounwind readnone158 159define <8 x i16> @test_int_x86_xop_vpcomequw(<8 x i16> %a0, <8 x i16> %a1) {160; CHECK-LABEL: test_int_x86_xop_vpcomequw:161; CHECK:       # %bb.0:162; CHECK-NEXT:    vpcomeqw %xmm1, %xmm0, %xmm0163; CHECK-NEXT:    retq164  %res = call <8 x i16> @llvm.x86.xop.vpcomequw(<8 x i16> %a0, <8 x i16> %a1) ;165  ret <8 x i16> %res166}167declare <8 x i16> @llvm.x86.xop.vpcomequw(<8 x i16>, <8 x i16>) nounwind readnone168 169define <16 x i8> @test_int_x86_xop_vpcomfalseb(<16 x i8> %a0, <16 x i8> %a1) {170; CHECK-LABEL: test_int_x86_xop_vpcomfalseb:171; CHECK:       # %bb.0:172; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0173; CHECK-NEXT:    retq174  %res = call <16 x i8> @llvm.x86.xop.vpcomfalseb(<16 x i8> %a0, <16 x i8> %a1) ;175  ret <16 x i8> %res176}177declare <16 x i8> @llvm.x86.xop.vpcomfalseb(<16 x i8>, <16 x i8>) nounwind readnone178 179define <4 x i32> @test_int_x86_xop_vpcomfalsed(<4 x i32> %a0, <4 x i32> %a1) {180; CHECK-LABEL: test_int_x86_xop_vpcomfalsed:181; CHECK:       # %bb.0:182; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0183; CHECK-NEXT:    retq184  %res = call <4 x i32> @llvm.x86.xop.vpcomfalsed(<4 x i32> %a0, <4 x i32> %a1) ;185  ret <4 x i32> %res186}187declare <4 x i32> @llvm.x86.xop.vpcomfalsed(<4 x i32>, <4 x i32>) nounwind readnone188 189define <2 x i64> @test_int_x86_xop_vpcomfalseq(<2 x i64> %a0, <2 x i64> %a1) {190; CHECK-LABEL: test_int_x86_xop_vpcomfalseq:191; CHECK:       # %bb.0:192; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0193; CHECK-NEXT:    retq194  %res = call <2 x i64> @llvm.x86.xop.vpcomfalseq(<2 x i64> %a0, <2 x i64> %a1) ;195  ret <2 x i64> %res196}197declare <2 x i64> @llvm.x86.xop.vpcomfalseq(<2 x i64>, <2 x i64>) nounwind readnone198 199define <16 x i8> @test_int_x86_xop_vpcomfalseub(<16 x i8> %a0, <16 x i8> %a1) {200; CHECK-LABEL: test_int_x86_xop_vpcomfalseub:201; CHECK:       # %bb.0:202; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0203; CHECK-NEXT:    retq204  %res = call <16 x i8> @llvm.x86.xop.vpcomfalseub(<16 x i8> %a0, <16 x i8> %a1) ;205  ret <16 x i8> %res206}207declare <16 x i8> @llvm.x86.xop.vpcomfalseub(<16 x i8>, <16 x i8>) nounwind readnone208 209define <4 x i32> @test_int_x86_xop_vpcomfalseud(<4 x i32> %a0, <4 x i32> %a1) {210; CHECK-LABEL: test_int_x86_xop_vpcomfalseud:211; CHECK:       # %bb.0:212; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0213; CHECK-NEXT:    retq214  %res = call <4 x i32> @llvm.x86.xop.vpcomfalseud(<4 x i32> %a0, <4 x i32> %a1) ;215  ret <4 x i32> %res216}217declare <4 x i32> @llvm.x86.xop.vpcomfalseud(<4 x i32>, <4 x i32>) nounwind readnone218 219define <2 x i64> @test_int_x86_xop_vpcomfalseuq(<2 x i64> %a0, <2 x i64> %a1) {220; CHECK-LABEL: test_int_x86_xop_vpcomfalseuq:221; CHECK:       # %bb.0:222; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0223; CHECK-NEXT:    retq224  %res = call <2 x i64> @llvm.x86.xop.vpcomfalseuq(<2 x i64> %a0, <2 x i64> %a1) ;225  ret <2 x i64> %res226}227declare <2 x i64> @llvm.x86.xop.vpcomfalseuq(<2 x i64>, <2 x i64>) nounwind readnone228 229define <8 x i16> @test_int_x86_xop_vpcomfalseuw(<8 x i16> %a0, <8 x i16> %a1) {230; CHECK-LABEL: test_int_x86_xop_vpcomfalseuw:231; CHECK:       # %bb.0:232; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0233; CHECK-NEXT:    retq234  %res = call <8 x i16> @llvm.x86.xop.vpcomfalseuw(<8 x i16> %a0, <8 x i16> %a1) ;235  ret <8 x i16> %res236}237declare <8 x i16> @llvm.x86.xop.vpcomfalseuw(<8 x i16>, <8 x i16>) nounwind readnone238 239define <8 x i16> @test_int_x86_xop_vpcomfalsew(<8 x i16> %a0, <8 x i16> %a1) {240; CHECK-LABEL: test_int_x86_xop_vpcomfalsew:241; CHECK:       # %bb.0:242; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm0243; CHECK-NEXT:    retq244  %res = call <8 x i16> @llvm.x86.xop.vpcomfalsew(<8 x i16> %a0, <8 x i16> %a1) ;245  ret <8 x i16> %res246}247declare <8 x i16> @llvm.x86.xop.vpcomfalsew(<8 x i16>, <8 x i16>) nounwind readnone248 249define <16 x i8> @test_int_x86_xop_vpcomgeb(<16 x i8> %a0, <16 x i8> %a1) {250; CHECK-LABEL: test_int_x86_xop_vpcomgeb:251; CHECK:       # %bb.0:252; CHECK-NEXT:    vpcomgeb %xmm1, %xmm0, %xmm0253; CHECK-NEXT:    retq254  %res = call <16 x i8> @llvm.x86.xop.vpcomgeb(<16 x i8> %a0, <16 x i8> %a1) ;255  ret <16 x i8> %res256}257declare <16 x i8> @llvm.x86.xop.vpcomgeb(<16 x i8>, <16 x i8>) nounwind readnone258 259define <4 x i32> @test_int_x86_xop_vpcomged(<4 x i32> %a0, <4 x i32> %a1) {260; CHECK-LABEL: test_int_x86_xop_vpcomged:261; CHECK:       # %bb.0:262; CHECK-NEXT:    vpcomged %xmm1, %xmm0, %xmm0263; CHECK-NEXT:    retq264  %res = call <4 x i32> @llvm.x86.xop.vpcomged(<4 x i32> %a0, <4 x i32> %a1) ;265  ret <4 x i32> %res266}267declare <4 x i32> @llvm.x86.xop.vpcomged(<4 x i32>, <4 x i32>) nounwind readnone268 269define <2 x i64> @test_int_x86_xop_vpcomgeq(<2 x i64> %a0, <2 x i64> %a1) {270; CHECK-LABEL: test_int_x86_xop_vpcomgeq:271; CHECK:       # %bb.0:272; CHECK-NEXT:    vpcomgeq %xmm1, %xmm0, %xmm0273; CHECK-NEXT:    retq274  %res = call <2 x i64> @llvm.x86.xop.vpcomgeq(<2 x i64> %a0, <2 x i64> %a1) ;275  ret <2 x i64> %res276}277declare <2 x i64> @llvm.x86.xop.vpcomgeq(<2 x i64>, <2 x i64>) nounwind readnone278 279define <16 x i8> @test_int_x86_xop_vpcomgeub(<16 x i8> %a0, <16 x i8> %a1) {280; CHECK-LABEL: test_int_x86_xop_vpcomgeub:281; CHECK:       # %bb.0:282; CHECK-NEXT:    vpcomgeub %xmm1, %xmm0, %xmm0283; CHECK-NEXT:    retq284  %res = call <16 x i8> @llvm.x86.xop.vpcomgeub(<16 x i8> %a0, <16 x i8> %a1) ;285  ret <16 x i8> %res286}287declare <16 x i8> @llvm.x86.xop.vpcomgeub(<16 x i8>, <16 x i8>) nounwind readnone288 289define <4 x i32> @test_int_x86_xop_vpcomgeud(<4 x i32> %a0, <4 x i32> %a1) {290; CHECK-LABEL: test_int_x86_xop_vpcomgeud:291; CHECK:       # %bb.0:292; CHECK-NEXT:    vpcomgeud %xmm1, %xmm0, %xmm0293; CHECK-NEXT:    retq294  %res = call <4 x i32> @llvm.x86.xop.vpcomgeud(<4 x i32> %a0, <4 x i32> %a1) ;295  ret <4 x i32> %res296}297declare <4 x i32> @llvm.x86.xop.vpcomgeud(<4 x i32>, <4 x i32>) nounwind readnone298 299define <2 x i64> @test_int_x86_xop_vpcomgeuq(<2 x i64> %a0, <2 x i64> %a1) {300; CHECK-LABEL: test_int_x86_xop_vpcomgeuq:301; CHECK:       # %bb.0:302; CHECK-NEXT:    vpcomgeuq %xmm1, %xmm0, %xmm0303; CHECK-NEXT:    retq304  %res = call <2 x i64> @llvm.x86.xop.vpcomgeuq(<2 x i64> %a0, <2 x i64> %a1) ;305  ret <2 x i64> %res306}307declare <2 x i64> @llvm.x86.xop.vpcomgeuq(<2 x i64>, <2 x i64>) nounwind readnone308 309define <8 x i16> @test_int_x86_xop_vpcomgeuw(<8 x i16> %a0, <8 x i16> %a1) {310; CHECK-LABEL: test_int_x86_xop_vpcomgeuw:311; CHECK:       # %bb.0:312; CHECK-NEXT:    vpcomgeuw %xmm1, %xmm0, %xmm0313; CHECK-NEXT:    retq314  %res = call <8 x i16> @llvm.x86.xop.vpcomgeuw(<8 x i16> %a0, <8 x i16> %a1) ;315  ret <8 x i16> %res316}317declare <8 x i16> @llvm.x86.xop.vpcomgeuw(<8 x i16>, <8 x i16>) nounwind readnone318 319define <8 x i16> @test_int_x86_xop_vpcomgew(<8 x i16> %a0, <8 x i16> %a1) {320; CHECK-LABEL: test_int_x86_xop_vpcomgew:321; CHECK:       # %bb.0:322; CHECK-NEXT:    vpcomgew %xmm1, %xmm0, %xmm0323; CHECK-NEXT:    retq324  %res = call <8 x i16> @llvm.x86.xop.vpcomgew(<8 x i16> %a0, <8 x i16> %a1) ;325  ret <8 x i16> %res326}327declare <8 x i16> @llvm.x86.xop.vpcomgew(<8 x i16>, <8 x i16>) nounwind readnone328 329define <16 x i8> @test_int_x86_xop_vpcomgtb(<16 x i8> %a0, <16 x i8> %a1) {330; CHECK-LABEL: test_int_x86_xop_vpcomgtb:331; CHECK:       # %bb.0:332; CHECK-NEXT:    vpcomgtb %xmm1, %xmm0, %xmm0333; CHECK-NEXT:    retq334  %res = call <16 x i8> @llvm.x86.xop.vpcomgtb(<16 x i8> %a0, <16 x i8> %a1) ;335  ret <16 x i8> %res336}337declare <16 x i8> @llvm.x86.xop.vpcomgtb(<16 x i8>, <16 x i8>) nounwind readnone338 339define <4 x i32> @test_int_x86_xop_vpcomgtd(<4 x i32> %a0, <4 x i32> %a1) {340; CHECK-LABEL: test_int_x86_xop_vpcomgtd:341; CHECK:       # %bb.0:342; CHECK-NEXT:    vpcomgtd %xmm1, %xmm0, %xmm0343; CHECK-NEXT:    retq344  %res = call <4 x i32> @llvm.x86.xop.vpcomgtd(<4 x i32> %a0, <4 x i32> %a1) ;345  ret <4 x i32> %res346}347declare <4 x i32> @llvm.x86.xop.vpcomgtd(<4 x i32>, <4 x i32>) nounwind readnone348 349define <2 x i64> @test_int_x86_xop_vpcomgtq(<2 x i64> %a0, <2 x i64> %a1) {350; CHECK-LABEL: test_int_x86_xop_vpcomgtq:351; CHECK:       # %bb.0:352; CHECK-NEXT:    vpcomgtq %xmm1, %xmm0, %xmm0353; CHECK-NEXT:    retq354  %res = call <2 x i64> @llvm.x86.xop.vpcomgtq(<2 x i64> %a0, <2 x i64> %a1) ;355  ret <2 x i64> %res356}357declare <2 x i64> @llvm.x86.xop.vpcomgtq(<2 x i64>, <2 x i64>) nounwind readnone358 359define <16 x i8> @test_int_x86_xop_vpcomgtub(<16 x i8> %a0, <16 x i8> %a1) {360; CHECK-LABEL: test_int_x86_xop_vpcomgtub:361; CHECK:       # %bb.0:362; CHECK-NEXT:    vpcomgtub %xmm1, %xmm0, %xmm0363; CHECK-NEXT:    retq364  %res = call <16 x i8> @llvm.x86.xop.vpcomgtub(<16 x i8> %a0, <16 x i8> %a1) ;365  ret <16 x i8> %res366}367declare <16 x i8> @llvm.x86.xop.vpcomgtub(<16 x i8>, <16 x i8>) nounwind readnone368 369define <4 x i32> @test_int_x86_xop_vpcomgtud(<4 x i32> %a0, <4 x i32> %a1) {370; CHECK-LABEL: test_int_x86_xop_vpcomgtud:371; CHECK:       # %bb.0:372; CHECK-NEXT:    vpcomgtud %xmm1, %xmm0, %xmm0373; CHECK-NEXT:    retq374  %res = call <4 x i32> @llvm.x86.xop.vpcomgtud(<4 x i32> %a0, <4 x i32> %a1) ;375  ret <4 x i32> %res376}377declare <4 x i32> @llvm.x86.xop.vpcomgtud(<4 x i32>, <4 x i32>) nounwind readnone378 379define <2 x i64> @test_int_x86_xop_vpcomgtuq(<2 x i64> %a0, <2 x i64> %a1) {380; CHECK-LABEL: test_int_x86_xop_vpcomgtuq:381; CHECK:       # %bb.0:382; CHECK-NEXT:    vpcomgtuq %xmm1, %xmm0, %xmm0383; CHECK-NEXT:    retq384  %res = call <2 x i64> @llvm.x86.xop.vpcomgtuq(<2 x i64> %a0, <2 x i64> %a1) ;385  ret <2 x i64> %res386}387declare <2 x i64> @llvm.x86.xop.vpcomgtuq(<2 x i64>, <2 x i64>) nounwind readnone388 389define <8 x i16> @test_int_x86_xop_vpcomgtuw(<8 x i16> %a0, <8 x i16> %a1) {390; CHECK-LABEL: test_int_x86_xop_vpcomgtuw:391; CHECK:       # %bb.0:392; CHECK-NEXT:    vpcomgtuw %xmm1, %xmm0, %xmm0393; CHECK-NEXT:    retq394  %res = call <8 x i16> @llvm.x86.xop.vpcomgtuw(<8 x i16> %a0, <8 x i16> %a1) ;395  ret <8 x i16> %res396}397declare <8 x i16> @llvm.x86.xop.vpcomgtuw(<8 x i16>, <8 x i16>) nounwind readnone398 399define <8 x i16> @test_int_x86_xop_vpcomgtw(<8 x i16> %a0, <8 x i16> %a1) {400; CHECK-LABEL: test_int_x86_xop_vpcomgtw:401; CHECK:       # %bb.0:402; CHECK-NEXT:    vpcomgtw %xmm1, %xmm0, %xmm0403; CHECK-NEXT:    retq404  %res = call <8 x i16> @llvm.x86.xop.vpcomgtw(<8 x i16> %a0, <8 x i16> %a1) ;405  ret <8 x i16> %res406}407declare <8 x i16> @llvm.x86.xop.vpcomgtw(<8 x i16>, <8 x i16>) nounwind readnone408 409define <16 x i8> @test_int_x86_xop_vpcomleb(<16 x i8> %a0, <16 x i8> %a1) {410; CHECK-LABEL: test_int_x86_xop_vpcomleb:411; CHECK:       # %bb.0:412; CHECK-NEXT:    vpcomleb %xmm1, %xmm0, %xmm0413; CHECK-NEXT:    retq414  %res = call <16 x i8> @llvm.x86.xop.vpcomleb(<16 x i8> %a0, <16 x i8> %a1) ;415  ret <16 x i8> %res416}417declare <16 x i8> @llvm.x86.xop.vpcomleb(<16 x i8>, <16 x i8>) nounwind readnone418 419define <4 x i32> @test_int_x86_xop_vpcomled(<4 x i32> %a0, <4 x i32> %a1) {420; CHECK-LABEL: test_int_x86_xop_vpcomled:421; CHECK:       # %bb.0:422; CHECK-NEXT:    vpcomled %xmm1, %xmm0, %xmm0423; CHECK-NEXT:    retq424  %res = call <4 x i32> @llvm.x86.xop.vpcomled(<4 x i32> %a0, <4 x i32> %a1) ;425  ret <4 x i32> %res426}427declare <4 x i32> @llvm.x86.xop.vpcomled(<4 x i32>, <4 x i32>) nounwind readnone428 429define <2 x i64> @test_int_x86_xop_vpcomleq(<2 x i64> %a0, <2 x i64> %a1) {430; CHECK-LABEL: test_int_x86_xop_vpcomleq:431; CHECK:       # %bb.0:432; CHECK-NEXT:    vpcomleq %xmm1, %xmm0, %xmm0433; CHECK-NEXT:    retq434  %res = call <2 x i64> @llvm.x86.xop.vpcomleq(<2 x i64> %a0, <2 x i64> %a1) ;435  ret <2 x i64> %res436}437declare <2 x i64> @llvm.x86.xop.vpcomleq(<2 x i64>, <2 x i64>) nounwind readnone438 439define <16 x i8> @test_int_x86_xop_vpcomleub(<16 x i8> %a0, <16 x i8> %a1) {440; CHECK-LABEL: test_int_x86_xop_vpcomleub:441; CHECK:       # %bb.0:442; CHECK-NEXT:    vpcomleub %xmm1, %xmm0, %xmm0443; CHECK-NEXT:    retq444  %res = call <16 x i8> @llvm.x86.xop.vpcomleub(<16 x i8> %a0, <16 x i8> %a1) ;445  ret <16 x i8> %res446}447declare <16 x i8> @llvm.x86.xop.vpcomleub(<16 x i8>, <16 x i8>) nounwind readnone448 449define <4 x i32> @test_int_x86_xop_vpcomleud(<4 x i32> %a0, <4 x i32> %a1) {450; CHECK-LABEL: test_int_x86_xop_vpcomleud:451; CHECK:       # %bb.0:452; CHECK-NEXT:    vpcomleud %xmm1, %xmm0, %xmm0453; CHECK-NEXT:    retq454  %res = call <4 x i32> @llvm.x86.xop.vpcomleud(<4 x i32> %a0, <4 x i32> %a1) ;455  ret <4 x i32> %res456}457declare <4 x i32> @llvm.x86.xop.vpcomleud(<4 x i32>, <4 x i32>) nounwind readnone458 459define <2 x i64> @test_int_x86_xop_vpcomleuq(<2 x i64> %a0, <2 x i64> %a1) {460; CHECK-LABEL: test_int_x86_xop_vpcomleuq:461; CHECK:       # %bb.0:462; CHECK-NEXT:    vpcomleuq %xmm1, %xmm0, %xmm0463; CHECK-NEXT:    retq464  %res = call <2 x i64> @llvm.x86.xop.vpcomleuq(<2 x i64> %a0, <2 x i64> %a1) ;465  ret <2 x i64> %res466}467declare <2 x i64> @llvm.x86.xop.vpcomleuq(<2 x i64>, <2 x i64>) nounwind readnone468 469define <8 x i16> @test_int_x86_xop_vpcomleuw(<8 x i16> %a0, <8 x i16> %a1) {470; CHECK-LABEL: test_int_x86_xop_vpcomleuw:471; CHECK:       # %bb.0:472; CHECK-NEXT:    vpcomleuw %xmm1, %xmm0, %xmm0473; CHECK-NEXT:    retq474  %res = call <8 x i16> @llvm.x86.xop.vpcomleuw(<8 x i16> %a0, <8 x i16> %a1) ;475  ret <8 x i16> %res476}477declare <8 x i16> @llvm.x86.xop.vpcomleuw(<8 x i16>, <8 x i16>) nounwind readnone478 479define <8 x i16> @test_int_x86_xop_vpcomlew(<8 x i16> %a0, <8 x i16> %a1) {480; CHECK-LABEL: test_int_x86_xop_vpcomlew:481; CHECK:       # %bb.0:482; CHECK-NEXT:    vpcomlew %xmm1, %xmm0, %xmm0483; CHECK-NEXT:    retq484  %res = call <8 x i16> @llvm.x86.xop.vpcomlew(<8 x i16> %a0, <8 x i16> %a1) ;485  ret <8 x i16> %res486}487declare <8 x i16> @llvm.x86.xop.vpcomlew(<8 x i16>, <8 x i16>) nounwind readnone488 489define <16 x i8> @test_int_x86_xop_vpcomltb(<16 x i8> %a0, <16 x i8> %a1) {490; CHECK-LABEL: test_int_x86_xop_vpcomltb:491; CHECK:       # %bb.0:492; CHECK-NEXT:    vpcomltb %xmm1, %xmm0, %xmm0493; CHECK-NEXT:    retq494  %res = call <16 x i8> @llvm.x86.xop.vpcomltb(<16 x i8> %a0, <16 x i8> %a1) ;495  ret <16 x i8> %res496}497declare <16 x i8> @llvm.x86.xop.vpcomltb(<16 x i8>, <16 x i8>) nounwind readnone498 499define <4 x i32> @test_int_x86_xop_vpcomltd(<4 x i32> %a0, <4 x i32> %a1) {500; CHECK-LABEL: test_int_x86_xop_vpcomltd:501; CHECK:       # %bb.0:502; CHECK-NEXT:    vpcomltd %xmm1, %xmm0, %xmm0503; CHECK-NEXT:    retq504  %res = call <4 x i32> @llvm.x86.xop.vpcomltd(<4 x i32> %a0, <4 x i32> %a1) ;505  ret <4 x i32> %res506}507declare <4 x i32> @llvm.x86.xop.vpcomltd(<4 x i32>, <4 x i32>) nounwind readnone508 509define <2 x i64> @test_int_x86_xop_vpcomltq(<2 x i64> %a0, <2 x i64> %a1) {510; CHECK-LABEL: test_int_x86_xop_vpcomltq:511; CHECK:       # %bb.0:512; CHECK-NEXT:    vpcomltq %xmm1, %xmm0, %xmm0513; CHECK-NEXT:    retq514  %res = call <2 x i64> @llvm.x86.xop.vpcomltq(<2 x i64> %a0, <2 x i64> %a1) ;515  ret <2 x i64> %res516}517declare <2 x i64> @llvm.x86.xop.vpcomltq(<2 x i64>, <2 x i64>) nounwind readnone518 519define <16 x i8> @test_int_x86_xop_vpcomltub(<16 x i8> %a0, <16 x i8> %a1) {520; CHECK-LABEL: test_int_x86_xop_vpcomltub:521; CHECK:       # %bb.0:522; CHECK-NEXT:    vpcomltub %xmm1, %xmm0, %xmm0523; CHECK-NEXT:    retq524  %res = call <16 x i8> @llvm.x86.xop.vpcomltub(<16 x i8> %a0, <16 x i8> %a1) ;525  ret <16 x i8> %res526}527declare <16 x i8> @llvm.x86.xop.vpcomltub(<16 x i8>, <16 x i8>) nounwind readnone528 529define <4 x i32> @test_int_x86_xop_vpcomltud(<4 x i32> %a0, <4 x i32> %a1) {530; CHECK-LABEL: test_int_x86_xop_vpcomltud:531; CHECK:       # %bb.0:532; CHECK-NEXT:    vpcomltud %xmm1, %xmm0, %xmm0533; CHECK-NEXT:    retq534  %res = call <4 x i32> @llvm.x86.xop.vpcomltud(<4 x i32> %a0, <4 x i32> %a1) ;535  ret <4 x i32> %res536}537declare <4 x i32> @llvm.x86.xop.vpcomltud(<4 x i32>, <4 x i32>) nounwind readnone538 539define <2 x i64> @test_int_x86_xop_vpcomltuq(<2 x i64> %a0, <2 x i64> %a1) {540; CHECK-LABEL: test_int_x86_xop_vpcomltuq:541; CHECK:       # %bb.0:542; CHECK-NEXT:    vpcomltuq %xmm1, %xmm0, %xmm0543; CHECK-NEXT:    retq544  %res = call <2 x i64> @llvm.x86.xop.vpcomltuq(<2 x i64> %a0, <2 x i64> %a1) ;545  ret <2 x i64> %res546}547declare <2 x i64> @llvm.x86.xop.vpcomltuq(<2 x i64>, <2 x i64>) nounwind readnone548 549define <8 x i16> @test_int_x86_xop_vpcomltuw(<8 x i16> %a0, <8 x i16> %a1) {550; CHECK-LABEL: test_int_x86_xop_vpcomltuw:551; CHECK:       # %bb.0:552; CHECK-NEXT:    vpcomltuw %xmm1, %xmm0, %xmm0553; CHECK-NEXT:    retq554  %res = call <8 x i16> @llvm.x86.xop.vpcomltuw(<8 x i16> %a0, <8 x i16> %a1) ;555  ret <8 x i16> %res556}557declare <8 x i16> @llvm.x86.xop.vpcomltuw(<8 x i16>, <8 x i16>) nounwind readnone558 559define <8 x i16> @test_int_x86_xop_vpcomltw(<8 x i16> %a0, <8 x i16> %a1) {560; CHECK-LABEL: test_int_x86_xop_vpcomltw:561; CHECK:       # %bb.0:562; CHECK-NEXT:    vpcomltw %xmm1, %xmm0, %xmm0563; CHECK-NEXT:    retq564  %res = call <8 x i16> @llvm.x86.xop.vpcomltw(<8 x i16> %a0, <8 x i16> %a1) ;565  ret <8 x i16> %res566}567declare <8 x i16> @llvm.x86.xop.vpcomltw(<8 x i16>, <8 x i16>) nounwind readnone568 569define <16 x i8> @test_int_x86_xop_vpcomneb(<16 x i8> %a0, <16 x i8> %a1) {570; CHECK-LABEL: test_int_x86_xop_vpcomneb:571; CHECK:       # %bb.0:572; CHECK-NEXT:    vpcomneqb %xmm1, %xmm0, %xmm0573; CHECK-NEXT:    retq574  %res = call <16 x i8> @llvm.x86.xop.vpcomneb(<16 x i8> %a0, <16 x i8> %a1) ;575  ret <16 x i8> %res576}577declare <16 x i8> @llvm.x86.xop.vpcomneb(<16 x i8>, <16 x i8>) nounwind readnone578 579define <4 x i32> @test_int_x86_xop_vpcomned(<4 x i32> %a0, <4 x i32> %a1) {580; CHECK-LABEL: test_int_x86_xop_vpcomned:581; CHECK:       # %bb.0:582; CHECK-NEXT:    vpcomneqd %xmm1, %xmm0, %xmm0583; CHECK-NEXT:    retq584  %res = call <4 x i32> @llvm.x86.xop.vpcomned(<4 x i32> %a0, <4 x i32> %a1) ;585  ret <4 x i32> %res586}587declare <4 x i32> @llvm.x86.xop.vpcomned(<4 x i32>, <4 x i32>) nounwind readnone588 589define <2 x i64> @test_int_x86_xop_vpcomneq(<2 x i64> %a0, <2 x i64> %a1) {590; CHECK-LABEL: test_int_x86_xop_vpcomneq:591; CHECK:       # %bb.0:592; CHECK-NEXT:    vpcomneqq %xmm1, %xmm0, %xmm0593; CHECK-NEXT:    retq594  %res = call <2 x i64> @llvm.x86.xop.vpcomneq(<2 x i64> %a0, <2 x i64> %a1) ;595  ret <2 x i64> %res596}597declare <2 x i64> @llvm.x86.xop.vpcomneq(<2 x i64>, <2 x i64>) nounwind readnone598 599define <16 x i8> @test_int_x86_xop_vpcomneub(<16 x i8> %a0, <16 x i8> %a1) {600; CHECK-LABEL: test_int_x86_xop_vpcomneub:601; CHECK:       # %bb.0:602; CHECK-NEXT:    vpcomneqb %xmm1, %xmm0, %xmm0603; CHECK-NEXT:    retq604  %res = call <16 x i8> @llvm.x86.xop.vpcomneub(<16 x i8> %a0, <16 x i8> %a1) ;605  ret <16 x i8> %res606}607declare <16 x i8> @llvm.x86.xop.vpcomneub(<16 x i8>, <16 x i8>) nounwind readnone608 609define <4 x i32> @test_int_x86_xop_vpcomneud(<4 x i32> %a0, <4 x i32> %a1) {610; CHECK-LABEL: test_int_x86_xop_vpcomneud:611; CHECK:       # %bb.0:612; CHECK-NEXT:    vpcomneqd %xmm1, %xmm0, %xmm0613; CHECK-NEXT:    retq614  %res = call <4 x i32> @llvm.x86.xop.vpcomneud(<4 x i32> %a0, <4 x i32> %a1) ;615  ret <4 x i32> %res616}617declare <4 x i32> @llvm.x86.xop.vpcomneud(<4 x i32>, <4 x i32>) nounwind readnone618 619define <2 x i64> @test_int_x86_xop_vpcomneuq(<2 x i64> %a0, <2 x i64> %a1) {620; CHECK-LABEL: test_int_x86_xop_vpcomneuq:621; CHECK:       # %bb.0:622; CHECK-NEXT:    vpcomneqq %xmm1, %xmm0, %xmm0623; CHECK-NEXT:    retq624  %res = call <2 x i64> @llvm.x86.xop.vpcomneuq(<2 x i64> %a0, <2 x i64> %a1) ;625  ret <2 x i64> %res626}627declare <2 x i64> @llvm.x86.xop.vpcomneuq(<2 x i64>, <2 x i64>) nounwind readnone628 629define <8 x i16> @test_int_x86_xop_vpcomneuw(<8 x i16> %a0, <8 x i16> %a1) {630; CHECK-LABEL: test_int_x86_xop_vpcomneuw:631; CHECK:       # %bb.0:632; CHECK-NEXT:    vpcomneqw %xmm1, %xmm0, %xmm0633; CHECK-NEXT:    retq634  %res = call <8 x i16> @llvm.x86.xop.vpcomneuw(<8 x i16> %a0, <8 x i16> %a1) ;635  ret <8 x i16> %res636}637declare <8 x i16> @llvm.x86.xop.vpcomneuw(<8 x i16>, <8 x i16>) nounwind readnone638 639define <8 x i16> @test_int_x86_xop_vpcomnew(<8 x i16> %a0, <8 x i16> %a1) {640; CHECK-LABEL: test_int_x86_xop_vpcomnew:641; CHECK:       # %bb.0:642; CHECK-NEXT:    vpcomneqw %xmm1, %xmm0, %xmm0643; CHECK-NEXT:    retq644  %res = call <8 x i16> @llvm.x86.xop.vpcomnew(<8 x i16> %a0, <8 x i16> %a1) ;645  ret <8 x i16> %res646}647declare <8 x i16> @llvm.x86.xop.vpcomnew(<8 x i16>, <8 x i16>) nounwind readnone648 649define <16 x i8> @test_int_x86_xop_vpcomtrueb(<16 x i8> %a0, <16 x i8> %a1) {650; CHECK-LABEL: test_int_x86_xop_vpcomtrueb:651; CHECK:       # %bb.0:652; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0653; CHECK-NEXT:    retq654  %res = call <16 x i8> @llvm.x86.xop.vpcomtrueb(<16 x i8> %a0, <16 x i8> %a1) ;655  ret <16 x i8> %res656}657declare <16 x i8> @llvm.x86.xop.vpcomtrueb(<16 x i8>, <16 x i8>) nounwind readnone658 659define <4 x i32> @test_int_x86_xop_vpcomtrued(<4 x i32> %a0, <4 x i32> %a1) {660; CHECK-LABEL: test_int_x86_xop_vpcomtrued:661; CHECK:       # %bb.0:662; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0663; CHECK-NEXT:    retq664  %res = call <4 x i32> @llvm.x86.xop.vpcomtrued(<4 x i32> %a0, <4 x i32> %a1) ;665  ret <4 x i32> %res666}667declare <4 x i32> @llvm.x86.xop.vpcomtrued(<4 x i32>, <4 x i32>) nounwind readnone668 669define <2 x i64> @test_int_x86_xop_vpcomtrueq(<2 x i64> %a0, <2 x i64> %a1) {670; CHECK-LABEL: test_int_x86_xop_vpcomtrueq:671; CHECK:       # %bb.0:672; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0673; CHECK-NEXT:    retq674  %res = call <2 x i64> @llvm.x86.xop.vpcomtrueq(<2 x i64> %a0, <2 x i64> %a1) ;675  ret <2 x i64> %res676}677declare <2 x i64> @llvm.x86.xop.vpcomtrueq(<2 x i64>, <2 x i64>) nounwind readnone678 679define <16 x i8> @test_int_x86_xop_vpcomtrueub(<16 x i8> %a0, <16 x i8> %a1) {680; CHECK-LABEL: test_int_x86_xop_vpcomtrueub:681; CHECK:       # %bb.0:682; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0683; CHECK-NEXT:    retq684  %res = call <16 x i8> @llvm.x86.xop.vpcomtrueub(<16 x i8> %a0, <16 x i8> %a1) ;685  ret <16 x i8> %res686}687declare <16 x i8> @llvm.x86.xop.vpcomtrueub(<16 x i8>, <16 x i8>) nounwind readnone688 689define <4 x i32> @test_int_x86_xop_vpcomtrueud(<4 x i32> %a0, <4 x i32> %a1) {690; CHECK-LABEL: test_int_x86_xop_vpcomtrueud:691; CHECK:       # %bb.0:692; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0693; CHECK-NEXT:    retq694  %res = call <4 x i32> @llvm.x86.xop.vpcomtrueud(<4 x i32> %a0, <4 x i32> %a1) ;695  ret <4 x i32> %res696}697declare <4 x i32> @llvm.x86.xop.vpcomtrueud(<4 x i32>, <4 x i32>) nounwind readnone698 699define <2 x i64> @test_int_x86_xop_vpcomtrueuq(<2 x i64> %a0, <2 x i64> %a1) {700; CHECK-LABEL: test_int_x86_xop_vpcomtrueuq:701; CHECK:       # %bb.0:702; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0703; CHECK-NEXT:    retq704  %res = call <2 x i64> @llvm.x86.xop.vpcomtrueuq(<2 x i64> %a0, <2 x i64> %a1) ;705  ret <2 x i64> %res706}707declare <2 x i64> @llvm.x86.xop.vpcomtrueuq(<2 x i64>, <2 x i64>) nounwind readnone708 709define <8 x i16> @test_int_x86_xop_vpcomtrueuw(<8 x i16> %a0, <8 x i16> %a1) {710; CHECK-LABEL: test_int_x86_xop_vpcomtrueuw:711; CHECK:       # %bb.0:712; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0713; CHECK-NEXT:    retq714  %res = call <8 x i16> @llvm.x86.xop.vpcomtrueuw(<8 x i16> %a0, <8 x i16> %a1) ;715  ret <8 x i16> %res716}717declare <8 x i16> @llvm.x86.xop.vpcomtrueuw(<8 x i16>, <8 x i16>) nounwind readnone718 719define <8 x i16> @test_int_x86_xop_vpcomtruew(<8 x i16> %a0, <8 x i16> %a1) {720; CHECK-LABEL: test_int_x86_xop_vpcomtruew:721; CHECK:       # %bb.0:722; CHECK-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0723; CHECK-NEXT:    retq724  %res = call <8 x i16> @llvm.x86.xop.vpcomtruew(<8 x i16> %a0, <8 x i16> %a1) ;725  ret <8 x i16> %res726}727declare <8 x i16> @llvm.x86.xop.vpcomtruew(<8 x i16>, <8 x i16>) nounwind readnone728 729define <16 x i8> @test_int_x86_xop_vpcomb(<16 x i8> %a0, <16 x i8> %a1) {730; CHECK-LABEL: test_int_x86_xop_vpcomb:731; CHECK:       # %bb.0:732; CHECK-NEXT:    vpcomltb %xmm1, %xmm0, %xmm0733; CHECK-NEXT:    retq734  %res = call <16 x i8> @llvm.x86.xop.vpcomb(<16 x i8> %a0, <16 x i8> %a1, i8 0) ;735  ret <16 x i8> %res736}737declare <16 x i8> @llvm.x86.xop.vpcomb(<16 x i8>, <16 x i8>, i8) nounwind readnone738 739define <8 x i16> @test_int_x86_xop_vpcomw(<8 x i16> %a0, <8 x i16> %a1) {740; CHECK-LABEL: test_int_x86_xop_vpcomw:741; CHECK:       # %bb.0:742; CHECK-NEXT:    vpcomltw %xmm1, %xmm0, %xmm0743; CHECK-NEXT:    retq744  %res = call <8 x i16> @llvm.x86.xop.vpcomw(<8 x i16> %a0, <8 x i16> %a1, i8 0) ;745  ret <8 x i16> %res746}747declare <8 x i16> @llvm.x86.xop.vpcomw(<8 x i16>, <8 x i16>, i8) nounwind readnone748 749define <4 x i32> @test_int_x86_xop_vpcomd(<4 x i32> %a0, <4 x i32> %a1) {750; CHECK-LABEL: test_int_x86_xop_vpcomd:751; CHECK:       # %bb.0:752; CHECK-NEXT:    vpcomltd %xmm1, %xmm0, %xmm0753; CHECK-NEXT:    retq754  %res = call <4 x i32> @llvm.x86.xop.vpcomd(<4 x i32> %a0, <4 x i32> %a1, i8 0) ;755  ret <4 x i32> %res756}757declare <4 x i32> @llvm.x86.xop.vpcomd(<4 x i32>, <4 x i32>, i8) nounwind readnone758 759define <2 x i64> @test_int_x86_xop_vpcomq(<2 x i64> %a0, <2 x i64> %a1) {760; CHECK-LABEL: test_int_x86_xop_vpcomq:761; CHECK:       # %bb.0:762; CHECK-NEXT:    vpcomltq %xmm1, %xmm0, %xmm0763; CHECK-NEXT:    retq764  %res = call <2 x i64> @llvm.x86.xop.vpcomq(<2 x i64> %a0, <2 x i64> %a1, i8 0) ;765  ret <2 x i64> %res766}767declare <2 x i64> @llvm.x86.xop.vpcomq(<2 x i64>, <2 x i64>, i8) nounwind readnone768 769define <16 x i8> @test_int_x86_xop_vpcomub(<16 x i8> %a0, <16 x i8> %a1) {770; CHECK-LABEL: test_int_x86_xop_vpcomub:771; CHECK:       # %bb.0:772; CHECK-NEXT:    vpcomltub %xmm1, %xmm0, %xmm0773; CHECK-NEXT:    retq774  %res = call <16 x i8> @llvm.x86.xop.vpcomub(<16 x i8> %a0, <16 x i8> %a1, i8 0) ;775  ret <16 x i8> %res776}777declare <16 x i8> @llvm.x86.xop.vpcomub(<16 x i8>, <16 x i8>, i8) nounwind readnone778 779define <8 x i16> @test_int_x86_xop_vpcomuw(<8 x i16> %a0, <8 x i16> %a1) {780; CHECK-LABEL: test_int_x86_xop_vpcomuw:781; CHECK:       # %bb.0:782; CHECK-NEXT:    vpcomltuw %xmm1, %xmm0, %xmm0783; CHECK-NEXT:    retq784  %res = call <8 x i16> @llvm.x86.xop.vpcomuw(<8 x i16> %a0, <8 x i16> %a1, i8 0) ;785  ret <8 x i16> %res786}787declare <8 x i16> @llvm.x86.xop.vpcomuw(<8 x i16>, <8 x i16>, i8) nounwind readnone788 789define <4 x i32> @test_int_x86_xop_vpcomud(<4 x i32> %a0, <4 x i32> %a1) {790; CHECK-LABEL: test_int_x86_xop_vpcomud:791; CHECK:       # %bb.0:792; CHECK-NEXT:    vpcomltud %xmm1, %xmm0, %xmm0793; CHECK-NEXT:    retq794  %res = call <4 x i32> @llvm.x86.xop.vpcomud(<4 x i32> %a0, <4 x i32> %a1, i8 0) ;795  ret <4 x i32> %res796}797declare <4 x i32> @llvm.x86.xop.vpcomud(<4 x i32>, <4 x i32>, i8) nounwind readnone798 799define <2 x i64> @test_int_x86_xop_vpcomuq(<2 x i64> %a0, <2 x i64> %a1) {800; CHECK-LABEL: test_int_x86_xop_vpcomuq:801; CHECK:       # %bb.0:802; CHECK-NEXT:    vpcomltuq %xmm1, %xmm0, %xmm0803; CHECK-NEXT:    retq804  %res = call <2 x i64> @llvm.x86.xop.vpcomuq(<2 x i64> %a0, <2 x i64> %a1, i8 0) ;805  ret <2 x i64> %res806}807declare <2 x i64> @llvm.x86.xop.vpcomuq(<2 x i64>, <2 x i64>, i8) nounwind readnone808 809define <2 x i64> @test_int_x86_xop_vpcmov(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) {810; CHECK-LABEL: test_int_x86_xop_vpcmov:811; CHECK:       # %bb.0:812; CHECK-NEXT:    vpcmov %xmm2, %xmm1, %xmm0, %xmm0813; CHECK-NEXT:    retq814  %res = call <2 x i64> @llvm.x86.xop.vpcmov(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) ;815  ret <2 x i64> %res816}817declare <2 x i64> @llvm.x86.xop.vpcmov(<2 x i64>, <2 x i64>, <2 x i64>) nounwind readnone818 819define <4 x i64> @test_int_x86_xop_vpcmov_256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) {820; CHECK-LABEL: test_int_x86_xop_vpcmov_256:821; CHECK:       # %bb.0:822; CHECK-NEXT:    vpcmov %ymm2, %ymm1, %ymm0, %ymm0823; CHECK-NEXT:    retq824  %res = call <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) ;825  ret <4 x i64> %res826}827define <4 x i64> @test_int_x86_xop_vpcmov_256_mr(<4 x i64> %a0, ptr %a1, <4 x i64> %a2) {828; CHECK-LABEL: test_int_x86_xop_vpcmov_256_mr:829; CHECK:       # %bb.0:830; CHECK-NEXT:    vpcmov %ymm1, (%rdi), %ymm0, %ymm0831; CHECK-NEXT:    retq832  %vec = load <4 x i64>, ptr %a1833  %res = call <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64> %a0, <4 x i64> %vec, <4 x i64> %a2) ;834  ret <4 x i64> %res835}836define <4 x i64> @test_int_x86_xop_vpcmov_256_rm(<4 x i64> %a0, <4 x i64> %a1, ptr %a2) {837; CHECK-LABEL: test_int_x86_xop_vpcmov_256_rm:838; CHECK:       # %bb.0:839; CHECK-NEXT:    vpcmov (%rdi), %ymm1, %ymm0, %ymm0840; CHECK-NEXT:    retq841 %vec = load <4 x i64>, ptr %a2842 %res = call <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %vec) ;843  ret <4 x i64> %res844}845declare <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64>, <4 x i64>, <4 x i64>) nounwind readnone846 847define <16 x i8> @test_int_x86_xop_vprotb(<16 x i8> %a0, <16 x i8> %a1) {848; CHECK-LABEL: test_int_x86_xop_vprotb:849; CHECK:       # %bb.0:850; CHECK-NEXT:    vprotb %xmm1, %xmm0, %xmm0851; CHECK-NEXT:    retq852  %res = call <16 x i8> @llvm.x86.xop.vprotb(<16 x i8> %a0, <16 x i8> %a1) ;853  ret <16 x i8> %res854}855declare <16 x i8> @llvm.x86.xop.vprotb(<16 x i8>, <16 x i8>) nounwind readnone856 857define <4 x i32> @test_int_x86_xop_vprotd(<4 x i32> %a0, <4 x i32> %a1) {858; CHECK-LABEL: test_int_x86_xop_vprotd:859; CHECK:       # %bb.0:860; CHECK-NEXT:    vprotd %xmm1, %xmm0, %xmm0861; CHECK-NEXT:    retq862  %res = call <4 x i32> @llvm.x86.xop.vprotd(<4 x i32> %a0, <4 x i32> %a1) ;863  ret <4 x i32> %res864}865declare <4 x i32> @llvm.x86.xop.vprotd(<4 x i32>, <4 x i32>) nounwind readnone866 867define <2 x i64> @test_int_x86_xop_vprotq(<2 x i64> %a0, <2 x i64> %a1) {868; CHECK-LABEL: test_int_x86_xop_vprotq:869; CHECK:       # %bb.0:870; CHECK-NEXT:    vprotq %xmm1, %xmm0, %xmm0871; CHECK-NEXT:    retq872  %res = call <2 x i64> @llvm.x86.xop.vprotq(<2 x i64> %a0, <2 x i64> %a1) ;873  ret <2 x i64> %res874}875declare <2 x i64> @llvm.x86.xop.vprotq(<2 x i64>, <2 x i64>) nounwind readnone876 877define <8 x i16> @test_int_x86_xop_vprotw(<8 x i16> %a0, <8 x i16> %a1) {878; CHECK-LABEL: test_int_x86_xop_vprotw:879; CHECK:       # %bb.0:880; CHECK-NEXT:    vprotw %xmm1, %xmm0, %xmm0881; CHECK-NEXT:    retq882  %res = call <8 x i16> @llvm.x86.xop.vprotw(<8 x i16> %a0, <8 x i16> %a1) ;883  ret <8 x i16> %res884}885declare <8 x i16> @llvm.x86.xop.vprotw(<8 x i16>, <8 x i16>) nounwind readnone886 887define <16 x i8> @test_int_x86_xop_vprotbi(<16 x i8> %a0) {888; CHECK-LABEL: test_int_x86_xop_vprotbi:889; CHECK:       # %bb.0:890; CHECK-NEXT:    vprotb $1, %xmm0, %xmm0891; CHECK-NEXT:    retq892  %res = call <16 x i8> @llvm.x86.xop.vprotbi(<16 x i8> %a0, i8 1) ;893  ret <16 x i8> %res894}895declare <16 x i8> @llvm.x86.xop.vprotbi(<16 x i8>, i8) nounwind readnone896 897define <4 x i32> @test_int_x86_xop_vprotdi(<4 x i32> %a0) {898; CHECK-LABEL: test_int_x86_xop_vprotdi:899; CHECK:       # %bb.0:900; CHECK-NEXT:    vprotd $30, %xmm0, %xmm0901; CHECK-NEXT:    retq902  %res = call <4 x i32> @llvm.x86.xop.vprotdi(<4 x i32> %a0, i8 -2) ;903  ret <4 x i32> %res904}905declare <4 x i32> @llvm.x86.xop.vprotdi(<4 x i32>, i8) nounwind readnone906 907define <2 x i64> @test_int_x86_xop_vprotqi(<2 x i64> %a0) {908; CHECK-LABEL: test_int_x86_xop_vprotqi:909; CHECK:       # %bb.0:910; CHECK-NEXT:    vprotq $3, %xmm0, %xmm0911; CHECK-NEXT:    retq912  %res = call <2 x i64> @llvm.x86.xop.vprotqi(<2 x i64> %a0, i8 3) ;913  ret <2 x i64> %res914}915declare <2 x i64> @llvm.x86.xop.vprotqi(<2 x i64>, i8) nounwind readnone916 917define <8 x i16> @test_int_x86_xop_vprotwi(<8 x i16> %a0) {918; CHECK-LABEL: test_int_x86_xop_vprotwi:919; CHECK:       # %bb.0:920; CHECK-NEXT:    vprotw $12, %xmm0, %xmm0921; CHECK-NEXT:    retq922  %res = call <8 x i16> @llvm.x86.xop.vprotwi(<8 x i16> %a0, i8 -4) ;923  ret <8 x i16> %res924}925declare <8 x i16> @llvm.x86.xop.vprotwi(<8 x i16>, i8) nounwind readnone926