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