1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512vl --show-mc-encoding| FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.pbroadcastd.256(<4 x i32>, <8 x i32>, i8) 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_pbroadcastd_256(<4 x i32> %x0, <8 x i32> %x1, i8 %mask, i32 * %y_ptr) { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_pbroadcastd_256: 8*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastd %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x58,0xc8] 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastd %xmm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x58,0xc0] 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd (%rsi){1to8}, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x38,0xfe,0x0e] 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfe,0xc1] 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 15*9880d681SAndroid Build Coastguard Worker %y_32 = load i32, i32 * %y_ptr 16*9880d681SAndroid Build Coastguard Worker %y = insertelement <4 x i32> undef, i32 %y_32, i32 0 17*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.pbroadcastd.256(<4 x i32> %y, <8 x i32> %x1, i8 -1) 18*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.pbroadcastd.256(<4 x i32> %x0, <8 x i32> %x1, i8 %mask) 19*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i32> @llvm.x86.avx512.pbroadcastd.256(<4 x i32> %x0, <8 x i32> zeroinitializer, i8 %mask) 20*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i32> %res, %res1 21*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i32> %res2, %res3 22*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res4 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.pbroadcastd.128(<4 x i32>, <4 x i32>, i8) 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_pbroadcastd_128(<4 x i32> %x0, <4 x i32> %x1, i8 %mask) { 28*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_pbroadcastd_128: 29*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastd %xmm0, %xmm2 ## encoding: [0x62,0xf2,0x7d,0x08,0x58,0xd0] 31*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 32*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastd %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x58,0xc8] 33*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastd %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x58,0xc0] 34*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm1, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfe,0xc9] 35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfe,0xc1] 36*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 37*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.pbroadcastd.128(<4 x i32> %x0, <4 x i32> %x1, i8 -1) 38*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.pbroadcastd.128(<4 x i32> %x0, <4 x i32> %x1, i8 %mask) 39*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i32> @llvm.x86.avx512.pbroadcastd.128(<4 x i32> %x0, <4 x i32> zeroinitializer, i8 %mask) 40*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i32> %res, %res1 41*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i32> %res2, %res3 42*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res4 43*9880d681SAndroid Build Coastguard Worker} 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.pbroadcastq.256(<2 x i64>, <4 x i64>, i8) 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_pbroadcastq_256(<2 x i64> %x0, <4 x i64> %x1, i8 %mask) { 48*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_pbroadcastq_256: 49*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %ymm2 ## encoding: [0x62,0xf2,0xfd,0x28,0x59,0xd0] 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x59,0xc8] 53*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x59,0xc0] 54*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm1, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc9] 55*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc1] 56*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 57*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.pbroadcastq.256(<2 x i64> %x0, <4 x i64> %x1,i8 -1) 58*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.pbroadcastq.256(<2 x i64> %x0, <4 x i64> %x1,i8 %mask) 59*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.pbroadcastq.256(<2 x i64> %x0, <4 x i64> zeroinitializer,i8 %mask) 60*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i64> %res, %res1 61*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res2, %res3 62*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 63*9880d681SAndroid Build Coastguard Worker} 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.pbroadcastq.128(<2 x i64>, <2 x i64>, i8) 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_pbroadcastq_128(<2 x i64> %x0, <2 x i64> %x1, i8 %mask) { 68*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_pbroadcastq_128: 69*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %xmm2 ## encoding: [0x62,0xf2,0xfd,0x08,0x59,0xd0] 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 72*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x59,0xc8] 73*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastq %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x59,0xc0] 74*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm1, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0xed,0x08,0xd4,0xc9] 75*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xd4,0xc1] 76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 77*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.pbroadcastq.128(<2 x i64> %x0, <2 x i64> %x1,i8 -1) 78*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.pbroadcastq.128(<2 x i64> %x0, <2 x i64> %x1,i8 %mask) 79*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x i64> @llvm.x86.avx512.pbroadcastq.128(<2 x i64> %x0, <2 x i64> zeroinitializer,i8 %mask) 80*9880d681SAndroid Build Coastguard Worker %res3 = add <2 x i64> %res, %res1 81*9880d681SAndroid Build Coastguard Worker %res4 = add <2 x i64> %res2, %res3 82*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res4 83*9880d681SAndroid Build Coastguard Worker} 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.broadcast.sd.pd.256(<2 x double>, <4 x double>, i8) nounwind readonly 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_x86_vbroadcast_sd_pd_256(<2 x double> %a0, <4 x double> %a1, i8 %mask ) { 88*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vbroadcast_sd_pd_256: 89*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 90*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastsd %xmm0, %ymm2 ## encoding: [0x62,0xf2,0xfd,0x28,0x19,0xd0] 91*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 92*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastsd %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x19,0xc8] 93*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastsd %xmm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x19,0xc0] 94*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm1, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc9] 95*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc1] 96*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 97*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.broadcast.sd.pd.256(<2 x double> %a0, <4 x double> zeroinitializer, i8 -1) 98*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.broadcast.sd.pd.256(<2 x double> %a0, <4 x double> %a1, i8 %mask) 99*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.broadcast.sd.pd.256(<2 x double> %a0, <4 x double> zeroinitializer, i8 %mask) 100*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x double> %res, %res1 101*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res3 102*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.256(<4 x float>, <8 x float>, i8) nounwind readonly 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_x86_vbroadcast_ss_ps_256(<4 x float> %a0, <8 x float> %a1, i8 %mask ) { 108*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vbroadcast_ss_ps_256: 109*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %ymm2 ## encoding: [0x62,0xf2,0x7d,0x28,0x18,0xd0] 111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x18,0xc8] 113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x18,0xc0] 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm1, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6c,0x28,0x58,0xc9] 115*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x58,0xc1] 116*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 117*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.256(<4 x float> %a0, <8 x float> zeroinitializer, i8 -1) 118*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.256(<4 x float> %a0, <8 x float> %a1, i8 %mask) 119*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.256(<4 x float> %a0, <8 x float> zeroinitializer, i8 %mask) 120*9880d681SAndroid Build Coastguard Worker %res3 = fadd <8 x float> %res, %res1 121*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res2, %res3 122*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 123*9880d681SAndroid Build Coastguard Worker} 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.128(<4 x float>, <4 x float>, i8) nounwind readonly 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_x86_vbroadcast_ss_ps_128(<4 x float> %a0, <4 x float> %a1, i8 %mask ) { 128*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vbroadcast_ss_ps_128: 129*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 130*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %xmm2 ## encoding: [0x62,0xf2,0x7d,0x08,0x18,0xd0] 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x18,0xc8] 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastss %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x18,0xc0] 134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm1, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc9] 135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x58,0xc1] 136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 137*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.128(<4 x float> %a0, <4 x float> zeroinitializer, i8 -1) 138*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.128(<4 x float> %a0, <4 x float> %a1, i8 %mask) 139*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.broadcast.ss.ps.128(<4 x float> %a0, <4 x float> zeroinitializer, i8 %mask) 140*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x float> %res, %res1 141*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res3 142*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 143*9880d681SAndroid Build Coastguard Worker} 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.movsldup.128(<4 x float>, <4 x float>, i8) 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_movsldup_128(<4 x float> %x0, <4 x float> %x1, i8 %x2) { 148*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movsldup_128: 149*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %xmm0, %xmm2 ## encoding: [0x62,0xf1,0x7e,0x08,0x12,0xd0] 151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[0,0,2,2] 152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7e,0x09,0x12,0xc8] 154*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[0,0,2,2] 155*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0x89,0x12,0xc0] 156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[0,0,2,2] 157*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xca] 158*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x58,0xc1] 159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 160*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.movsldup.128(<4 x float> %x0, <4 x float> %x1, i8 %x2) 161*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.movsldup.128(<4 x float> %x0, <4 x float> %x1, i8 -1) 162*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.movsldup.128(<4 x float> %x0, <4 x float> zeroinitializer, i8 %x2) 163*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x float> %res, %res1 164*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res3 165*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 166*9880d681SAndroid Build Coastguard Worker} 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.movsldup.256(<8 x float>, <8 x float>, i8) 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_movsldup_256(<8 x float> %x0, <8 x float> %x1, i8 %x2) { 171*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movsldup_256: 172*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %ymm0, %ymm2 ## encoding: [0x62,0xf1,0x7e,0x28,0x12,0xd0] 174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[0,0,2,2,4,4,6,6] 175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7e,0x29,0x12,0xc8] 177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,0,2,2,4,4,6,6] 178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovsldup %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0xa9,0x12,0xc0] 179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[0,0,2,2,4,4,6,6] 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xca] 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x58,0xc1] 182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 183*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.movsldup.256(<8 x float> %x0, <8 x float> %x1, i8 %x2) 184*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.movsldup.256(<8 x float> %x0, <8 x float> %x1, i8 -1) 185*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.movsldup.256(<8 x float> %x0, <8 x float> zeroinitializer, i8 %x2) 186*9880d681SAndroid Build Coastguard Worker %res3 = fadd <8 x float> %res, %res1 187*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res2, %res3 188*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 189*9880d681SAndroid Build Coastguard Worker} 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.movshdup.128(<4 x float>, <4 x float>, i8) 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_movshdup_128(<4 x float> %x0, <4 x float> %x1, i8 %x2) { 194*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movshdup_128: 195*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 196*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %xmm0, %xmm2 ## encoding: [0x62,0xf1,0x7e,0x08,0x16,0xd0] 197*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[1,1,3,3] 198*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7e,0x09,0x16,0xc8] 200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[1,1,3,3] 201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0x89,0x16,0xc0] 202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[1,1,3,3] 203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xca] 204*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x58,0xc1] 205*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 206*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.movshdup.128(<4 x float> %x0, <4 x float> %x1, i8 %x2) 207*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.movshdup.128(<4 x float> %x0, <4 x float> %x1, i8 -1) 208*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.movshdup.128(<4 x float> %x0, <4 x float> zeroinitializer, i8 %x2) 209*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x float> %res, %res1 210*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res3 211*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 212*9880d681SAndroid Build Coastguard Worker} 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.movshdup.256(<8 x float>, <8 x float>, i8) 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_movshdup_256(<8 x float> %x0, <8 x float> %x1, i8 %x2) { 217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movshdup_256: 218*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %ymm0, %ymm2 ## encoding: [0x62,0xf1,0x7e,0x28,0x16,0xd0] 220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[1,1,3,3,5,5,7,7] 221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 222*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7e,0x29,0x16,0xc8] 223*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[1,1,3,3,5,5,7,7] 224*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovshdup %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0xa9,0x16,0xc0] 225*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[1,1,3,3,5,5,7,7] 226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xca] 227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x58,0xc1] 228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 229*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.movshdup.256(<8 x float> %x0, <8 x float> %x1, i8 %x2) 230*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.movshdup.256(<8 x float> %x0, <8 x float> %x1, i8 -1) 231*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.movshdup.256(<8 x float> %x0, <8 x float> zeroinitializer, i8 %x2) 232*9880d681SAndroid Build Coastguard Worker %res3 = fadd <8 x float> %res, %res1 233*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res2, %res3 234*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 235*9880d681SAndroid Build Coastguard Worker} 236*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.movddup.128(<2 x double>, <2 x double>, i8) 237*9880d681SAndroid Build Coastguard Worker 238*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_movddup_128(<2 x double> %x0, <2 x double> %x1, i8 %x2) { 239*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movddup_128: 240*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %xmm0, %xmm2 ## encoding: [0x62,0xf1,0xff,0x08,0x12,0xd0] 242*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[0,0] 243*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 244*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x09,0x12,0xc8] 245*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[0,0] 246*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xff,0x89,0x12,0xc0] 247*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[0,0] 248*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xca] 249*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x58,0xc1] 250*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 251*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.movddup.128(<2 x double> %x0, <2 x double> %x1, i8 %x2) 252*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.movddup.128(<2 x double> %x0, <2 x double> %x1, i8 -1) 253*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x double> @llvm.x86.avx512.mask.movddup.128(<2 x double> %x0, <2 x double> zeroinitializer, i8 %x2) 254*9880d681SAndroid Build Coastguard Worker %res3 = fadd <2 x double> %res, %res1 255*9880d681SAndroid Build Coastguard Worker %res4 = fadd <2 x double> %res2, %res3 256*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res4 257*9880d681SAndroid Build Coastguard Worker} 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.movddup.256(<4 x double>, <4 x double>, i8) 260*9880d681SAndroid Build Coastguard Worker 261*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_movddup_256(<4 x double> %x0, <4 x double> %x1, i8 %x2) { 262*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_movddup_256: 263*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %ymm0, %ymm2 ## encoding: [0x62,0xf1,0xff,0x28,0x12,0xd0] 265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[0,0,2,2] 266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x29,0x12,0xc8] 268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,0,2,2] 269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovddup %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xff,0xa9,0x12,0xc0] 270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[0,0,2,2] 271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xca] 272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc1] 273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 274*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.movddup.256(<4 x double> %x0, <4 x double> %x1, i8 %x2) 275*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.movddup.256(<4 x double> %x0, <4 x double> %x1, i8 -1) 276*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.movddup.256(<4 x double> %x0, <4 x double> zeroinitializer, i8 %x2) 277*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x double> %res, %res1 278*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res3 279*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 280*9880d681SAndroid Build Coastguard Worker} 281*9880d681SAndroid Build Coastguard Worker 282*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.vpermil.pd.256(<4 x double>, i32, <4 x double>, i8) 283*9880d681SAndroid Build Coastguard Worker 284*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_vpermil_pd_256(<4 x double> %x0, <4 x double> %x2, i8 %x3) { 285*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermil_pd_256: 286*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 287*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $6, %ymm0, %ymm2 ## encoding: [0x62,0xf3,0xfd,0x28,0x05,0xd0,0x06] 288*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[0,1,3,2] 289*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 290*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $6, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x05,0xc8,0x06] 291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,1,3,2] 292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $6, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x05,0xc0,0x06] 293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[0,1,3,2] 294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0] 296*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 297*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vpermil.pd.256(<4 x double> %x0, i32 22, <4 x double> %x2, i8 %x3) 298*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.vpermil.pd.256(<4 x double> %x0, i32 22, <4 x double> zeroinitializer, i8 %x3) 299*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.vpermil.pd.256(<4 x double> %x0, i32 22, <4 x double> %x2, i8 -1) 300*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x double> %res, %res1 301*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res3 302*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 303*9880d681SAndroid Build Coastguard Worker} 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vpermil.pd.128(<2 x double>, i32, <2 x double>, i8) 306*9880d681SAndroid Build Coastguard Worker 307*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vpermil_pd_128(<2 x double> %x0, <2 x double> %x2, i8 %x3) { 308*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermil_pd_128: 309*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 310*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $1, %xmm0, %xmm2 ## encoding: [0x62,0xf3,0xfd,0x08,0x05,0xd0,0x01] 311*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[1,0] 312*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 313*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $1, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x05,0xc8,0x01] 314*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[1,0] 315*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilpd $1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0x89,0x05,0xc0,0x01] 316*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[1,0] 317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x58,0xc2] 319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 320*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vpermil.pd.128(<2 x double> %x0, i32 1, <2 x double> %x2, i8 %x3) 321*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vpermil.pd.128(<2 x double> %x0, i32 1, <2 x double> zeroinitializer, i8 %x3) 322*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x double> @llvm.x86.avx512.mask.vpermil.pd.128(<2 x double> %x0, i32 1, <2 x double> %x2, i8 -1) 323*9880d681SAndroid Build Coastguard Worker %res3 = fadd <2 x double> %res, %res1 324*9880d681SAndroid Build Coastguard Worker %res4 = fadd <2 x double> %res3, %res2 325*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res4 326*9880d681SAndroid Build Coastguard Worker} 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.vpermil.ps.256(<8 x float>, i32, <8 x float>, i8) 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_vpermil_ps_256(<8 x float> %x0, <8 x float> %x2, i8 %x3) { 331*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermil_ps_256: 332*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 333*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %ymm0, %ymm2 ## encoding: [0x62,0xf3,0x7d,0x28,0x04,0xd0,0x16] 334*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[2,1,1,0,6,5,5,4] 335*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 336*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x04,0xc8,0x16] 337*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[2,1,1,0,6,5,5,4] 338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf3,0x7d,0xa9,0x04,0xc0,0x16] 339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[2,1,1,0,6,5,5,4] 340*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0] 341*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm2, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x58,0xc2] 342*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 343*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vpermil.ps.256(<8 x float> %x0, i32 22, <8 x float> %x2, i8 %x3) 344*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.vpermil.ps.256(<8 x float> %x0, i32 22, <8 x float> zeroinitializer, i8 %x3) 345*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.vpermil.ps.256(<8 x float> %x0, i32 22, <8 x float> %x2, i8 -1) 346*9880d681SAndroid Build Coastguard Worker %res3 = fadd <8 x float> %res, %res1 347*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res3, %res2 348*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 349*9880d681SAndroid Build Coastguard Worker} 350*9880d681SAndroid Build Coastguard Worker 351*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.vpermil.ps.128(<4 x float>, i32, <4 x float>, i8) 352*9880d681SAndroid Build Coastguard Worker 353*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_vpermil_ps_128(<4 x float> %x0, <4 x float> %x2, i8 %x3) { 354*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermil_ps_128: 355*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %xmm0, %xmm2 ## encoding: [0x62,0xf3,0x7d,0x08,0x04,0xd0,0x16] 357*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[2,1,1,0] 358*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x04,0xc8,0x16] 360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[2,1,1,0] 361*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermilps $22, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf3,0x7d,0x89,0x04,0xc0,0x16] 362*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[2,1,1,0] 363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc0] 365*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 366*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vpermil.ps.128(<4 x float> %x0, i32 22, <4 x float> %x2, i8 %x3) 367*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.vpermil.ps.128(<4 x float> %x0, i32 22, <4 x float> zeroinitializer, i8 %x3) 368*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.vpermil.ps.128(<4 x float> %x0, i32 22, <4 x float> %x2, i8 -1) 369*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x float> %res, %res1 370*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res3 371*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 372*9880d681SAndroid Build Coastguard Worker} 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.perm.df.256(<4 x double>, i32, <4 x double>, i8) 375*9880d681SAndroid Build Coastguard Worker 376*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_perm_df_256(<4 x double> %x0, i32 %x1, <4 x double> %x2, i8 %x3) { 377*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_perm_df_256: 378*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermpd $3, %ymm0, %ymm2 ## encoding: [0x62,0xf3,0xfd,0x28,0x01,0xd0,0x03] 380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[3,0,0,0] 381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermpd $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x01,0xc8,0x03] 383*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[3,0,0,0] 384*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermpd $3, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x01,0xc0,0x03] 385*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[3,0,0,0] 386*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm2, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc2] 388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 389*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.perm.df.256(<4 x double> %x0, i32 3, <4 x double> %x2, i8 %x3) 390*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.perm.df.256(<4 x double> %x0, i32 3, <4 x double> zeroinitializer, i8 %x3) 391*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.perm.df.256(<4 x double> %x0, i32 3, <4 x double> %x2, i8 -1) 392*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x double> %res, %res1 393*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res3, %res2 394*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 395*9880d681SAndroid Build Coastguard Worker} 396*9880d681SAndroid Build Coastguard Worker 397*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.perm.di.256(<4 x i64>, i32, <4 x i64>, i8) 398*9880d681SAndroid Build Coastguard Worker 399*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_perm_di_256(<4 x i64> %x0, i32 %x1, <4 x i64> %x2, i8 %x3) { 400*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_perm_di_256: 401*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 402*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermq $3, %ymm0, %ymm2 ## encoding: [0x62,0xf3,0xfd,0x28,0x00,0xd0,0x03] 403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[3,0,0,0] 404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermq $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x00,0xc8,0x03] 406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[3,0,0,0] 407*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermq $3, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x00,0xc0,0x03] 408*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[3,0,0,0] 409*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 410*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm2, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc2] 411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 412*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.perm.di.256(<4 x i64> %x0, i32 3, <4 x i64> %x2, i8 %x3) 413*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.perm.di.256(<4 x i64> %x0, i32 3, <4 x i64> zeroinitializer, i8 %x3) 414*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.perm.di.256(<4 x i64> %x0, i32 3, <4 x i64> %x2, i8 -1) 415*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i64> %res, %res1 416*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res3, %res2 417*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 418*9880d681SAndroid Build Coastguard Worker} 419*9880d681SAndroid Build Coastguard Worker 420*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.pd.128(i8*, <2 x double>, i8) 421*9880d681SAndroid Build Coastguard Worker 422*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_pd_128(i8* %ptr1, i8* %ptr2, <2 x double> %x1, i8 %x2) { 423*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_pd_128: 424*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 425*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 426*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x29,0x07] 427*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd %xmm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x08,0x29,0x06] 428*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 429*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.pd.128(i8* %ptr1, <2 x double> %x1, i8 %x2) 430*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.pd.128(i8* %ptr2, <2 x double> %x1, i8 -1) 431*9880d681SAndroid Build Coastguard Worker ret void 432*9880d681SAndroid Build Coastguard Worker} 433*9880d681SAndroid Build Coastguard Worker 434*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.pd.256(i8*, <4 x double>, i8) 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_pd_256(i8* %ptr1, i8* %ptr2, <4 x double> %x1, i8 %x2) { 437*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_pd_256: 438*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 439*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 440*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x29,0x07] 441*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd %ymm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x28,0x29,0x06] 442*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 443*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.pd.256(i8* %ptr1, <4 x double> %x1, i8 %x2) 444*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.pd.256(i8* %ptr2, <4 x double> %x1, i8 -1) 445*9880d681SAndroid Build Coastguard Worker ret void 446*9880d681SAndroid Build Coastguard Worker} 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.pd.128(i8*, <2 x double>, i8) 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_pd_128(i8* %ptr1, i8* %ptr2, <2 x double> %x1, i8 %x2) { 451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_pd_128: 452*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 454*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x11,0x07] 455*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd %xmm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x08,0x11,0x06] 456*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 457*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.pd.128(i8* %ptr1, <2 x double> %x1, i8 %x2) 458*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.pd.128(i8* %ptr2, <2 x double> %x1, i8 -1) 459*9880d681SAndroid Build Coastguard Worker ret void 460*9880d681SAndroid Build Coastguard Worker} 461*9880d681SAndroid Build Coastguard Worker 462*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.pd.256(i8*, <4 x double>, i8) 463*9880d681SAndroid Build Coastguard Worker 464*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_pd_256(i8* %ptr1, i8* %ptr2, <4 x double> %x1, i8 %x2) { 465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_pd_256: 466*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x11,0x07] 469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd %ymm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x28,0x11,0x06] 470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 471*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.pd.256(i8* %ptr1, <4 x double> %x1, i8 %x2) 472*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.pd.256(i8* %ptr2, <4 x double> %x1, i8 -1) 473*9880d681SAndroid Build Coastguard Worker ret void 474*9880d681SAndroid Build Coastguard Worker} 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.ps.128(i8*, <4 x float>, i8) 477*9880d681SAndroid Build Coastguard Worker 478*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_ps_128(i8* %ptr1, i8* %ptr2, <4 x float> %x1, i8 %x2) { 479*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_ps_128: 480*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 481*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 482*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x29,0x07] 483*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %xmm0, (%rsi) ## encoding: [0x62,0xf1,0x7c,0x08,0x29,0x06] 484*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 485*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.ps.128(i8* %ptr1, <4 x float> %x1, i8 %x2) 486*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.ps.128(i8* %ptr2, <4 x float> %x1, i8 -1) 487*9880d681SAndroid Build Coastguard Worker ret void 488*9880d681SAndroid Build Coastguard Worker} 489*9880d681SAndroid Build Coastguard Worker 490*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.ps.256(i8*, <8 x float>, i8) 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_ps_256(i8* %ptr1, i8* %ptr2, <8 x float> %x1, i8 %x2) { 493*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_ps_256: 494*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 495*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 496*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x29,0x07] 497*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %ymm0, (%rsi) ## encoding: [0x62,0xf1,0x7c,0x28,0x29,0x06] 498*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 499*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.ps.256(i8* %ptr1, <8 x float> %x1, i8 %x2) 500*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.ps.256(i8* %ptr2, <8 x float> %x1, i8 -1) 501*9880d681SAndroid Build Coastguard Worker ret void 502*9880d681SAndroid Build Coastguard Worker} 503*9880d681SAndroid Build Coastguard Worker 504*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.ps.128(i8*, <4 x float>, i8) 505*9880d681SAndroid Build Coastguard Worker 506*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_ps_128(i8* %ptr1, i8* %ptr2, <4 x float> %x1, i8 %x2) { 507*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_ps_128: 508*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 510*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x11,0x07] 511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups %xmm0, (%rsi) ## encoding: [0x62,0xf1,0x7c,0x08,0x11,0x06] 512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 513*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.ps.128(i8* %ptr1, <4 x float> %x1, i8 %x2) 514*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.ps.128(i8* %ptr2, <4 x float> %x1, i8 -1) 515*9880d681SAndroid Build Coastguard Worker ret void 516*9880d681SAndroid Build Coastguard Worker} 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.ps.256(i8*, <8 x float>, i8) 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_ps_256(i8* %ptr1, i8* %ptr2, <8 x float> %x1, i8 %x2) { 521*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_ps_256: 522*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 523*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 524*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x11,0x07] 525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups %ymm0, (%rsi) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x06] 526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 527*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.ps.256(i8* %ptr1, <8 x float> %x1, i8 %x2) 528*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.ps.256(i8* %ptr2, <8 x float> %x1, i8 -1) 529*9880d681SAndroid Build Coastguard Worker ret void 530*9880d681SAndroid Build Coastguard Worker} 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.q.128(i8*, <2 x i64>, i8) 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_q_128(i8* %ptr1, i8* %ptr2, <2 x i64> %x1, i8 %x2) { 535*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_q_128: 536*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 537*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 538*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0x7f,0x07] 539*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 %xmm0, (%rsi) ## encoding: [0x62,0xf1,0xfe,0x08,0x7f,0x06] 540*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 541*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.q.128(i8* %ptr1, <2 x i64> %x1, i8 %x2) 542*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.q.128(i8* %ptr2, <2 x i64> %x1, i8 -1) 543*9880d681SAndroid Build Coastguard Worker ret void 544*9880d681SAndroid Build Coastguard Worker} 545*9880d681SAndroid Build Coastguard Worker 546*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.q.256(i8*, <4 x i64>, i8) 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_q_256(i8* %ptr1, i8* %ptr2, <4 x i64> %x1, i8 %x2) { 549*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_q_256: 550*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 551*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 552*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0x7f,0x07] 553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 %ymm0, (%rsi) ## encoding: [0x62,0xf1,0xfe,0x28,0x7f,0x06] 554*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 555*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.q.256(i8* %ptr1, <4 x i64> %x1, i8 %x2) 556*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.q.256(i8* %ptr2, <4 x i64> %x1, i8 -1) 557*9880d681SAndroid Build Coastguard Worker ret void 558*9880d681SAndroid Build Coastguard Worker} 559*9880d681SAndroid Build Coastguard Worker 560*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.d.128(i8*, <4 x i32>, i8) 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_d_128(i8* %ptr1, i8* %ptr2, <4 x i32> %x1, i8 %x2) { 563*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_d_128: 564*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7e,0x09,0x7f,0x07] 567*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 %xmm0, (%rsi) ## encoding: [0x62,0xf1,0x7e,0x08,0x7f,0x06] 568*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 569*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.d.128(i8* %ptr1, <4 x i32> %x1, i8 %x2) 570*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.d.128(i8* %ptr2, <4 x i32> %x1, i8 -1) 571*9880d681SAndroid Build Coastguard Worker ret void 572*9880d681SAndroid Build Coastguard Worker} 573*9880d681SAndroid Build Coastguard Worker 574*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.storeu.d.256(i8*, <8 x i32>, i8) 575*9880d681SAndroid Build Coastguard Worker 576*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_storeu_d_256(i8* %ptr1, i8* %ptr2, <8 x i32> %x1, i8 %x2) { 577*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_storeu_d_256: 578*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 579*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 580*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7e,0x29,0x7f,0x07] 581*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 %ymm0, (%rsi) ## encoding: [0x62,0xf1,0x7e,0x28,0x7f,0x06] 582*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 583*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.d.256(i8* %ptr1, <8 x i32> %x1, i8 %x2) 584*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.storeu.d.256(i8* %ptr2, <8 x i32> %x1, i8 -1) 585*9880d681SAndroid Build Coastguard Worker ret void 586*9880d681SAndroid Build Coastguard Worker} 587*9880d681SAndroid Build Coastguard Worker 588*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.q.128(i8*, <2 x i64>, i8) 589*9880d681SAndroid Build Coastguard Worker 590*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_q_128(i8* %ptr1, i8* %ptr2, <2 x i64> %x1, i8 %x2) { 591*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_q_128: 592*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 593*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 594*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x7f,0x07] 595*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 %xmm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x08,0x7f,0x06] 596*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 597*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.q.128(i8* %ptr1, <2 x i64> %x1, i8 %x2) 598*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.q.128(i8* %ptr2, <2 x i64> %x1, i8 -1) 599*9880d681SAndroid Build Coastguard Worker ret void 600*9880d681SAndroid Build Coastguard Worker} 601*9880d681SAndroid Build Coastguard Worker 602*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.q.256(i8*, <4 x i64>, i8) 603*9880d681SAndroid Build Coastguard Worker 604*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_q_256(i8* %ptr1, i8* %ptr2, <4 x i64> %x1, i8 %x2) { 605*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_q_256: 606*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 607*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x7f,0x07] 609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 %ymm0, (%rsi) ## encoding: [0x62,0xf1,0xfd,0x28,0x7f,0x06] 610*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 611*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.q.256(i8* %ptr1, <4 x i64> %x1, i8 %x2) 612*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.q.256(i8* %ptr2, <4 x i64> %x1, i8 -1) 613*9880d681SAndroid Build Coastguard Worker ret void 614*9880d681SAndroid Build Coastguard Worker} 615*9880d681SAndroid Build Coastguard Worker 616*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.d.128(i8*, <4 x i32>, i8) 617*9880d681SAndroid Build Coastguard Worker 618*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_d_128(i8* %ptr1, i8* %ptr2, <4 x i32> %x1, i8 %x2) { 619*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_d_128: 620*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 621*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 622*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x7f,0x07] 623*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 %xmm0, (%rsi) ## encoding: [0x62,0xf1,0x7d,0x08,0x7f,0x06] 624*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 625*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.d.128(i8* %ptr1, <4 x i32> %x1, i8 %x2) 626*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.d.128(i8* %ptr2, <4 x i32> %x1, i8 -1) 627*9880d681SAndroid Build Coastguard Worker ret void 628*9880d681SAndroid Build Coastguard Worker} 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.store.d.256(i8*, <8 x i32>, i8) 631*9880d681SAndroid Build Coastguard Worker 632*9880d681SAndroid Build Coastguard Workerdefine void@test_int_x86_avx512_mask_store_d_256(i8* %ptr1, i8* %ptr2, <8 x i32> %x1, i8 %x2) { 633*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_store_d_256: 634*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 635*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 636*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x7f,0x07] 637*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 %ymm0, (%rsi) ## encoding: [0x62,0xf1,0x7d,0x28,0x7f,0x06] 638*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 639*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.d.256(i8* %ptr1, <8 x i32> %x1, i8 %x2) 640*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.store.d.256(i8* %ptr2, <8 x i32> %x1, i8 -1) 641*9880d681SAndroid Build Coastguard Worker ret void 642*9880d681SAndroid Build Coastguard Worker} 643*9880d681SAndroid Build Coastguard Worker 644*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_load_aligned_ps_256(<8 x float> %data, i8* %ptr, i8 %mask) { 645*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_ps_256: 646*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 647*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0x07] 648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 649*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x28,0x07] 650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x28,0x0f] 651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0] 652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 653*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.load.ps.256(i8* %ptr, <8 x float> zeroinitializer, i8 -1) 654*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.load.ps.256(i8* %ptr, <8 x float> %res, i8 %mask) 655*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.load.ps.256(i8* %ptr, <8 x float> zeroinitializer, i8 %mask) 656*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res2, %res1 657*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 658*9880d681SAndroid Build Coastguard Worker} 659*9880d681SAndroid Build Coastguard Worker 660*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.load.ps.256(i8*, <8 x float>, i8) 661*9880d681SAndroid Build Coastguard Worker 662*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_load_unaligned_ps_256(<8 x float> %data, i8* %ptr, i8 %mask) { 663*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_ps_256: 664*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x10,0x07] 666*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 667*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x10,0x07] 668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x10,0x0f] 669*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0] 670*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 671*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.loadu.ps.256(i8* %ptr, <8 x float> zeroinitializer, i8 -1) 672*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.loadu.ps.256(i8* %ptr, <8 x float> %res, i8 %mask) 673*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.loadu.ps.256(i8* %ptr, <8 x float> zeroinitializer, i8 %mask) 674*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res2, %res1 675*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 676*9880d681SAndroid Build Coastguard Worker} 677*9880d681SAndroid Build Coastguard Worker 678*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.loadu.ps.256(i8*, <8 x float>, i8) 679*9880d681SAndroid Build Coastguard Worker 680*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_load_aligned_pd_256(<4 x double> %data, i8* %ptr, i8 %mask) { 681*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_pd_256: 682*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x28,0x07] 684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 685*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x28,0x07] 686*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x28,0x0f] 687*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 688*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 689*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.load.pd.256(i8* %ptr, <4 x double> zeroinitializer, i8 -1) 690*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.load.pd.256(i8* %ptr, <4 x double> %res, i8 %mask) 691*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.load.pd.256(i8* %ptr, <4 x double> zeroinitializer, i8 %mask) 692*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res1 693*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 694*9880d681SAndroid Build Coastguard Worker} 695*9880d681SAndroid Build Coastguard Worker 696*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.load.pd.256(i8*, <4 x double>, i8) 697*9880d681SAndroid Build Coastguard Worker 698*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_load_unaligned_pd_256(<4 x double> %data, i8* %ptr, i8 %mask) { 699*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_pd_256: 700*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 701*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x10,0x07] 702*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 703*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x10,0x07] 704*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x10,0x0f] 705*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 706*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 707*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.loadu.pd.256(i8* %ptr, <4 x double> zeroinitializer, i8 -1) 708*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.loadu.pd.256(i8* %ptr, <4 x double> %res, i8 %mask) 709*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.loadu.pd.256(i8* %ptr, <4 x double> zeroinitializer, i8 %mask) 710*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res1 711*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 712*9880d681SAndroid Build Coastguard Worker} 713*9880d681SAndroid Build Coastguard Worker 714*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.loadu.pd.256(i8*, <4 x double>, i8) 715*9880d681SAndroid Build Coastguard Worker 716*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_load_aligned_ps_128(<4 x float> %data, i8* %ptr, i8 %mask) { 717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_ps_128: 718*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x07] 720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x28,0x07] 722*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x28,0x0f] 723*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 724*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 725*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.load.ps.128(i8* %ptr, <4 x float> zeroinitializer, i8 -1) 726*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.load.ps.128(i8* %ptr, <4 x float> %res, i8 %mask) 727*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.load.ps.128(i8* %ptr, <4 x float> zeroinitializer, i8 %mask) 728*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res1 729*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 730*9880d681SAndroid Build Coastguard Worker} 731*9880d681SAndroid Build Coastguard Worker 732*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.load.ps.128(i8*, <4 x float>, i8) 733*9880d681SAndroid Build Coastguard Worker 734*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_load_unaligned_ps_128(<4 x float> %data, i8* %ptr, i8 %mask) { 735*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_ps_128: 736*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 737*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x10,0x07] 738*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 739*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x10,0x07] 740*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovups (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x10,0x0f] 741*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 742*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 743*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.loadu.ps.128(i8* %ptr, <4 x float> zeroinitializer, i8 -1) 744*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.loadu.ps.128(i8* %ptr, <4 x float> %res, i8 %mask) 745*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x float> @llvm.x86.avx512.mask.loadu.ps.128(i8* %ptr, <4 x float> zeroinitializer, i8 %mask) 746*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x float> %res2, %res1 747*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res4 748*9880d681SAndroid Build Coastguard Worker} 749*9880d681SAndroid Build Coastguard Worker 750*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.loadu.ps.128(i8*, <4 x float>, i8) 751*9880d681SAndroid Build Coastguard Worker 752*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_load_aligned_pd_128(<2 x double> %data, i8* %ptr, i8 %mask) { 753*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_pd_128: 754*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x28,0x07] 756*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 757*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x28,0x07] 758*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovapd (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x28,0x0f] 759*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 761*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.load.pd.128(i8* %ptr, <2 x double> zeroinitializer, i8 -1) 762*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.load.pd.128(i8* %ptr, <2 x double> %res, i8 %mask) 763*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x double> @llvm.x86.avx512.mask.load.pd.128(i8* %ptr, <2 x double> zeroinitializer, i8 %mask) 764*9880d681SAndroid Build Coastguard Worker %res4 = fadd <2 x double> %res2, %res1 765*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res4 766*9880d681SAndroid Build Coastguard Worker} 767*9880d681SAndroid Build Coastguard Worker 768*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.load.pd.128(i8*, <2 x double>, i8) 769*9880d681SAndroid Build Coastguard Worker 770*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_load_unaligned_pd_128(<2 x double> %data, i8* %ptr, i8 %mask) { 771*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_pd_128: 772*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 773*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x10,0x07] 774*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 775*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x10,0x07] 776*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovupd (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x10,0x0f] 777*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 778*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 779*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.loadu.pd.128(i8* %ptr, <2 x double> zeroinitializer, i8 -1) 780*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.loadu.pd.128(i8* %ptr, <2 x double> %res, i8 %mask) 781*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x double> @llvm.x86.avx512.mask.loadu.pd.128(i8* %ptr, <2 x double> zeroinitializer, i8 %mask) 782*9880d681SAndroid Build Coastguard Worker %res4 = fadd <2 x double> %res2, %res1 783*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res4 784*9880d681SAndroid Build Coastguard Worker} 785*9880d681SAndroid Build Coastguard Worker 786*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.loadu.pd.128(i8*, <2 x double>, i8) 787*9880d681SAndroid Build Coastguard Worker 788*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.loadu.d.128(i8*, <4 x i32>, i8) 789*9880d681SAndroid Build Coastguard Worker 790*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_load_unaligned_d_128(i8* %ptr, i8* %ptr2, <4 x i32> %data, i8 %mask) { 791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_d_128: 792*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 793*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x6f,0x07] 794*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rsi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0x7e,0x09,0x6f,0x06] 796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0x89,0x6f,0x0f] 797*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xc0] 798*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 799*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.loadu.d.128(i8* %ptr, <4 x i32> zeroinitializer, i8 -1) 800*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.loadu.d.128(i8* %ptr2, <4 x i32> %res, i8 %mask) 801*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i32> @llvm.x86.avx512.mask.loadu.d.128(i8* %ptr, <4 x i32> zeroinitializer, i8 %mask) 802*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i32> %res2, %res1 803*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res4 804*9880d681SAndroid Build Coastguard Worker} 805*9880d681SAndroid Build Coastguard Worker 806*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.loadu.d.256(i8*, <8 x i32>, i8) 807*9880d681SAndroid Build Coastguard Worker 808*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_load_unaligned_d_256(i8* %ptr, i8* %ptr2, <8 x i32> %data, i8 %mask) { 809*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_d_256: 810*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 811*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7e,0x28,0x6f,0x07] 812*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 813*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rsi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0x7e,0x29,0x6f,0x06] 814*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu32 (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0xa9,0x6f,0x0f] 815*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xc0] 816*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 817*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.loadu.d.256(i8* %ptr, <8 x i32> zeroinitializer, i8 -1) 818*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.loadu.d.256(i8* %ptr2, <8 x i32> %res, i8 %mask) 819*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i32> @llvm.x86.avx512.mask.loadu.d.256(i8* %ptr, <8 x i32> zeroinitializer, i8 %mask) 820*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i32> %res2, %res1 821*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res4 822*9880d681SAndroid Build Coastguard Worker} 823*9880d681SAndroid Build Coastguard Worker 824*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.loadu.q.128(i8*, <2 x i64>, i8) 825*9880d681SAndroid Build Coastguard Worker 826*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_load_unaligned_q_128(i8* %ptr, i8* %ptr2, <2 x i64> %data, i8 %mask) { 827*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_q_128: 828*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 829*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xfe,0x08,0x6f,0x07] 830*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 831*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rsi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0x6f,0x06] 832*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfe,0x89,0x6f,0x0f] 833*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 834*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 835*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.loadu.q.128(i8* %ptr, <2 x i64> zeroinitializer, i8 -1) 836*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.loadu.q.128(i8* %ptr2, <2 x i64> %res, i8 %mask) 837*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x i64> @llvm.x86.avx512.mask.loadu.q.128(i8* %ptr, <2 x i64> zeroinitializer, i8 %mask) 838*9880d681SAndroid Build Coastguard Worker %res4 = add <2 x i64> %res2, %res1 839*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res4 840*9880d681SAndroid Build Coastguard Worker} 841*9880d681SAndroid Build Coastguard Worker 842*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.loadu.q.256(i8*, <4 x i64>, i8) 843*9880d681SAndroid Build Coastguard Worker 844*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_load_unaligned_q_256(i8* %ptr, i8* %ptr2, <4 x i64> %data, i8 %mask) { 845*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_unaligned_q_256: 846*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 847*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0xfe,0x28,0x6f,0x07] 848*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edx, %k1 ## encoding: [0xc5,0xf8,0x92,0xca] 849*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rsi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0x6f,0x06] 850*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqu64 (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfe,0xa9,0x6f,0x0f] 851*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 852*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 853*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.loadu.q.256(i8* %ptr, <4 x i64> zeroinitializer, i8 -1) 854*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.loadu.q.256(i8* %ptr2, <4 x i64> %res, i8 %mask) 855*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.loadu.q.256(i8* %ptr, <4 x i64> zeroinitializer, i8 %mask) 856*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res2, %res1 857*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 858*9880d681SAndroid Build Coastguard Worker} 859*9880d681SAndroid Build Coastguard Worker 860*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.load.d.128(i8*, <4 x i32>, i8) 861*9880d681SAndroid Build Coastguard Worker 862*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_load_aligned_d_128(<4 x i32> %data, i8* %ptr, i8 %mask) { 863*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_d_128: 864*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 865*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6f,0x07] 866*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 867*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x6f,0x07] 868*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x6f,0x0f] 869*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xc0] 870*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 871*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.load.d.128(i8* %ptr, <4 x i32> zeroinitializer, i8 -1) 872*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.load.d.128(i8* %ptr, <4 x i32> %res, i8 %mask) 873*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i32> @llvm.x86.avx512.mask.load.d.128(i8* %ptr, <4 x i32> zeroinitializer, i8 %mask) 874*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i32> %res2, %res1 875*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res4 876*9880d681SAndroid Build Coastguard Worker} 877*9880d681SAndroid Build Coastguard Worker 878*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.load.d.256(i8*, <8 x i32>, i8) 879*9880d681SAndroid Build Coastguard Worker 880*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_load_aligned_d_256(<8 x i32> %data, i8* %ptr, i8 %mask) { 881*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_d_256: 882*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 883*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x6f,0x07] 884*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 885*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x6f,0x07] 886*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa32 (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x6f,0x0f] 887*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xc0] 888*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 889*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.load.d.256(i8* %ptr, <8 x i32> zeroinitializer, i8 -1) 890*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.load.d.256(i8* %ptr, <8 x i32> %res, i8 %mask) 891*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i32> @llvm.x86.avx512.mask.load.d.256(i8* %ptr, <8 x i32> zeroinitializer, i8 %mask) 892*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i32> %res2, %res1 893*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res4 894*9880d681SAndroid Build Coastguard Worker} 895*9880d681SAndroid Build Coastguard Worker 896*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.load.q.128(i8*, <2 x i64>, i8) 897*9880d681SAndroid Build Coastguard Worker 898*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_load_aligned_q_128(<2 x i64> %data, i8* %ptr, i8 %mask) { 899*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_q_128: 900*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 901*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0x07] 902*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 903*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %xmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x6f,0x07] 904*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %xmm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x6f,0x0f] 905*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 906*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 907*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.load.q.128(i8* %ptr, <2 x i64> zeroinitializer, i8 -1) 908*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.load.q.128(i8* %ptr, <2 x i64> %res, i8 %mask) 909*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x i64> @llvm.x86.avx512.mask.load.q.128(i8* %ptr, <2 x i64> zeroinitializer, i8 %mask) 910*9880d681SAndroid Build Coastguard Worker %res4 = add <2 x i64> %res2, %res1 911*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res4 912*9880d681SAndroid Build Coastguard Worker} 913*9880d681SAndroid Build Coastguard Worker 914*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.load.q.256(i8*, <4 x i64>, i8) 915*9880d681SAndroid Build Coastguard Worker 916*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_load_aligned_q_256(<4 x i64> %data, i8* %ptr, i8 %mask) { 917*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_load_aligned_q_256: 918*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 919*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0x07] 920*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 921*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %ymm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x6f,0x07] 922*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovdqa64 (%rdi), %ymm1 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x6f,0x0f] 923*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 924*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 925*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.load.q.256(i8* %ptr, <4 x i64> zeroinitializer, i8 -1) 926*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.load.q.256(i8* %ptr, <4 x i64> %res, i8 %mask) 927*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.load.q.256(i8* %ptr, <4 x i64> zeroinitializer, i8 %mask) 928*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res2, %res1 929*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 930*9880d681SAndroid Build Coastguard Worker} 931*9880d681SAndroid Build Coastguard Worker 932*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.pshuf.d.128(<4 x i32>, i32, <4 x i32>, i8) 933*9880d681SAndroid Build Coastguard Worker 934*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_mask_pshuf_d_128(<4 x i32> %x0, i32 %x1, <4 x i32> %x2, i8 %x3) { 935*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pshuf_d_128: 936*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 937*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %xmm0, %xmm2 ## encoding: [0x62,0xf1,0x7d,0x08,0x70,0xd0,0x03] 938*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[3,0,0,0] 939*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 940*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x70,0xc8,0x03] 941*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[3,0,0,0] 942*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x70,0xc0,0x03] 943*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 {%k1} {z} = xmm0[3,0,0,0] 944*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xc0] 945*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfe,0xc2] 946*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 947*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pshuf.d.128(<4 x i32> %x0, i32 3, <4 x i32> %x2, i8 %x3) 948*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.pshuf.d.128(<4 x i32> %x0, i32 3, <4 x i32> zeroinitializer, i8 %x3) 949*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i32> @llvm.x86.avx512.mask.pshuf.d.128(<4 x i32> %x0, i32 3, <4 x i32> %x2, i8 -1) 950*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i32> %res, %res1 951*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i32> %res3, %res2 952*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res4 953*9880d681SAndroid Build Coastguard Worker} 954*9880d681SAndroid Build Coastguard Worker 955*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.pshuf.d.256(<8 x i32>, i32, <8 x i32>, i8) 956*9880d681SAndroid Build Coastguard Worker 957*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_mask_pshuf_d_256(<8 x i32> %x0, i32 %x1, <8 x i32> %x2, i8 %x3) { 958*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pshuf_d_256: 959*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 960*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %ymm0, %ymm2 ## encoding: [0x62,0xf1,0x7d,0x28,0x70,0xd0,0x03] 961*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[3,0,0,0,7,4,4,4] 962*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 963*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x70,0xc8,0x03] 964*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[3,0,0,0,7,4,4,4] 965*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd $3, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x70,0xc0,0x03] 966*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 {%k1} {z} = ymm0[3,0,0,0,7,4,4,4] 967*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xc0] 968*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm2, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfe,0xc2] 969*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 970*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pshuf.d.256(<8 x i32> %x0, i32 3, <8 x i32> %x2, i8 %x3) 971*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.pshuf.d.256(<8 x i32> %x0, i32 3, <8 x i32> zeroinitializer, i8 %x3) 972*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i32> @llvm.x86.avx512.mask.pshuf.d.256(<8 x i32> %x0, i32 3, <8 x i32> %x2, i8 -1) 973*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i32> %res, %res1 974*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i32> %res3, %res2 975*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res4 976*9880d681SAndroid Build Coastguard Worker} 977*9880d681SAndroid Build Coastguard Worker 978*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpeq_d_256(<8 x i32> %a, <8 x i32> %b) { 979*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_d_256: 980*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 981*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqd %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x28,0x76,0xc1] 982*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 983*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 984*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 985*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.d.256(<8 x i32> %a, <8 x i32> %b, i8 -1) 986*9880d681SAndroid Build Coastguard Worker ret i8 %res 987*9880d681SAndroid Build Coastguard Worker} 988*9880d681SAndroid Build Coastguard Worker 989*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpeq_d_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 990*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_d_256: 991*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqd %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x76,0xc1] 994*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 995*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 996*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 997*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.d.256(<8 x i32> %a, <8 x i32> %b, i8 %mask) 998*9880d681SAndroid Build Coastguard Worker ret i8 %res 999*9880d681SAndroid Build Coastguard Worker} 1000*9880d681SAndroid Build Coastguard Worker 1001*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpeq.d.256(<8 x i32>, <8 x i32>, i8) 1002*9880d681SAndroid Build Coastguard Worker 1003*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpeq_q_256(<4 x i64> %a, <4 x i64> %b) { 1004*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_q_256: 1005*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1006*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqq %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x28,0x29,0xc1] 1007*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1008*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1009*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1011*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1012*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.q.256(<4 x i64> %a, <4 x i64> %b, i8 -1) 1013*9880d681SAndroid Build Coastguard Worker ret i8 %res 1014*9880d681SAndroid Build Coastguard Worker} 1015*9880d681SAndroid Build Coastguard Worker 1016*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpeq_q_256(<4 x i64> %a, <4 x i64> %b, i8 %mask) { 1017*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_q_256: 1018*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1019*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1020*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqq %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x29,0xc1] 1021*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1023*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1024*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1025*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1026*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.q.256(<4 x i64> %a, <4 x i64> %b, i8 %mask) 1027*9880d681SAndroid Build Coastguard Worker ret i8 %res 1028*9880d681SAndroid Build Coastguard Worker} 1029*9880d681SAndroid Build Coastguard Worker 1030*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpeq.q.256(<4 x i64>, <4 x i64>, i8) 1031*9880d681SAndroid Build Coastguard Worker 1032*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpgt_d_256(<8 x i32> %a, <8 x i32> %b) { 1033*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_d_256: 1034*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1035*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtd %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x28,0x66,0xc1] 1036*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1037*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1038*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1039*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.d.256(<8 x i32> %a, <8 x i32> %b, i8 -1) 1040*9880d681SAndroid Build Coastguard Worker ret i8 %res 1041*9880d681SAndroid Build Coastguard Worker} 1042*9880d681SAndroid Build Coastguard Worker 1043*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpgt_d_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 1044*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_d_256: 1045*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1046*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1047*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtd %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x66,0xc1] 1048*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1049*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1050*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1051*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.d.256(<8 x i32> %a, <8 x i32> %b, i8 %mask) 1052*9880d681SAndroid Build Coastguard Worker ret i8 %res 1053*9880d681SAndroid Build Coastguard Worker} 1054*9880d681SAndroid Build Coastguard Worker 1055*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpgt.d.256(<8 x i32>, <8 x i32>, i8) 1056*9880d681SAndroid Build Coastguard Worker 1057*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpgt_q_256(<4 x i64> %a, <4 x i64> %b) { 1058*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_q_256: 1059*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1060*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtq %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x28,0x37,0xc1] 1061*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1062*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1063*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1064*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1065*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1066*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.q.256(<4 x i64> %a, <4 x i64> %b, i8 -1) 1067*9880d681SAndroid Build Coastguard Worker ret i8 %res 1068*9880d681SAndroid Build Coastguard Worker} 1069*9880d681SAndroid Build Coastguard Worker 1070*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpgt_q_256(<4 x i64> %a, <4 x i64> %b, i8 %mask) { 1071*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_q_256: 1072*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1073*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1074*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtq %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x37,0xc1] 1075*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1076*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1077*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1078*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1079*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1080*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.q.256(<4 x i64> %a, <4 x i64> %b, i8 %mask) 1081*9880d681SAndroid Build Coastguard Worker ret i8 %res 1082*9880d681SAndroid Build Coastguard Worker} 1083*9880d681SAndroid Build Coastguard Worker 1084*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpgt.q.256(<4 x i64>, <4 x i64>, i8) 1085*9880d681SAndroid Build Coastguard Worker 1086*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpeq_d_128(<4 x i32> %a, <4 x i32> %b) { 1087*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_d_128: 1088*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1089*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqd %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x76,0xc1] 1090*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1091*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1092*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1093*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1094*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1095*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.d.128(<4 x i32> %a, <4 x i32> %b, i8 -1) 1096*9880d681SAndroid Build Coastguard Worker ret i8 %res 1097*9880d681SAndroid Build Coastguard Worker} 1098*9880d681SAndroid Build Coastguard Worker 1099*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpeq_d_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 1100*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_d_128: 1101*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1102*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1103*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqd %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x76,0xc1] 1104*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1109*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.d.128(<4 x i32> %a, <4 x i32> %b, i8 %mask) 1110*9880d681SAndroid Build Coastguard Worker ret i8 %res 1111*9880d681SAndroid Build Coastguard Worker} 1112*9880d681SAndroid Build Coastguard Worker 1113*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpeq.d.128(<4 x i32>, <4 x i32>, i8) 1114*9880d681SAndroid Build Coastguard Worker 1115*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpeq_q_128(<2 x i64> %a, <2 x i64> %b) { 1116*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_q_128: 1117*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1118*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqq %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x08,0x29,0xc1] 1119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0e] 1120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0e] 1121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1126*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.q.128(<2 x i64> %a, <2 x i64> %b, i8 -1) 1127*9880d681SAndroid Build Coastguard Worker ret i8 %res 1128*9880d681SAndroid Build Coastguard Worker} 1129*9880d681SAndroid Build Coastguard Worker 1130*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpeq_q_128(<2 x i64> %a, <2 x i64> %b, i8 %mask) { 1131*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_q_128: 1132*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqq %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x29,0xc1] 1135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0e] 1136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0e] 1137*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1138*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1142*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.q.128(<2 x i64> %a, <2 x i64> %b, i8 %mask) 1143*9880d681SAndroid Build Coastguard Worker ret i8 %res 1144*9880d681SAndroid Build Coastguard Worker} 1145*9880d681SAndroid Build Coastguard Worker 1146*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpeq.q.128(<2 x i64>, <2 x i64>, i8) 1147*9880d681SAndroid Build Coastguard Worker 1148*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpgt_d_128(<4 x i32> %a, <4 x i32> %b) { 1149*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_d_128: 1150*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtd %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x66,0xc1] 1152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1154*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1155*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1157*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.d.128(<4 x i32> %a, <4 x i32> %b, i8 -1) 1158*9880d681SAndroid Build Coastguard Worker ret i8 %res 1159*9880d681SAndroid Build Coastguard Worker} 1160*9880d681SAndroid Build Coastguard Worker 1161*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpgt_d_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 1162*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_d_128: 1163*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtd %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x66,0xc1] 1166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1167*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1169*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1170*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1171*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.d.128(<4 x i32> %a, <4 x i32> %b, i8 %mask) 1172*9880d681SAndroid Build Coastguard Worker ret i8 %res 1173*9880d681SAndroid Build Coastguard Worker} 1174*9880d681SAndroid Build Coastguard Worker 1175*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpgt.d.128(<4 x i32>, <4 x i32>, i8) 1176*9880d681SAndroid Build Coastguard Worker 1177*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpgt_q_128(<2 x i64> %a, <2 x i64> %b) { 1178*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_q_128: 1179*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtq %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x08,0x37,0xc1] 1181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0e] 1182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0e] 1183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1186*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1187*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1188*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.q.128(<2 x i64> %a, <2 x i64> %b, i8 -1) 1189*9880d681SAndroid Build Coastguard Worker ret i8 %res 1190*9880d681SAndroid Build Coastguard Worker} 1191*9880d681SAndroid Build Coastguard Worker 1192*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpgt_q_128(<2 x i64> %a, <2 x i64> %b, i8 %mask) { 1193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_q_128: 1194*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1196*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtq %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x37,0xc1] 1197*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0e] 1198*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $14, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0e] 1199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftlw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc0,0x0c] 1200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kshiftrw $12, %k0, %k0 ## encoding: [0xc4,0xe3,0xf9,0x30,0xc0,0x0c] 1201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 1202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 1203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1204*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.q.128(<2 x i64> %a, <2 x i64> %b, i8 %mask) 1205*9880d681SAndroid Build Coastguard Worker ret i8 %res 1206*9880d681SAndroid Build Coastguard Worker} 1207*9880d681SAndroid Build Coastguard Worker 1208*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpgt.q.128(<2 x i64>, <2 x i64>, i8) 1209*9880d681SAndroid Build Coastguard Worker 1210*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.unpckh.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1211*9880d681SAndroid Build Coastguard Worker 1212*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_unpckh_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckh_pd_128: 1214*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhpd %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x15,0xd9] 1216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[1],xmm1[1] 1217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1218*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhpd %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x15,0xd1] 1219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[1],xmm1[1] 1220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0x58,0xc3] 1221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1222*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.unpckh.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1223*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.unpckh.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1224*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1225*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1226*9880d681SAndroid Build Coastguard Worker} 1227*9880d681SAndroid Build Coastguard Worker 1228*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.unpckh.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1229*9880d681SAndroid Build Coastguard Worker 1230*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_unpckh_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckh_pd_256: 1232*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1233*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhpd %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x15,0xd9] 1234*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[1],ymm1[1],ymm0[3],ymm1[3] 1235*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhpd %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x15,0xd1] 1237*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[1],ymm1[1],ymm0[3],ymm1[3] 1238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc3] 1239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1240*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.unpckh.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1241*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.unpckh.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1242*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1243*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1244*9880d681SAndroid Build Coastguard Worker} 1245*9880d681SAndroid Build Coastguard Worker 1246*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.unpckh.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1247*9880d681SAndroid Build Coastguard Worker 1248*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_unpckh_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1249*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckh_ps_128: 1250*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhps %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0x7c,0x08,0x15,0xd9] 1252*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] 1253*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x15,0xd1] 1255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[2],xmm1[2],xmm0[3],xmm1[3] 1256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc3] 1257*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1258*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.unpckh.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1259*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.unpckh.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1260*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1261*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1262*9880d681SAndroid Build Coastguard Worker} 1263*9880d681SAndroid Build Coastguard Worker 1264*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.unpckh.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1265*9880d681SAndroid Build Coastguard Worker 1266*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_unpckh_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckh_ps_256: 1268*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhps %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0x7c,0x28,0x15,0xd9] 1270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7] 1271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpckhps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x15,0xd1] 1273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7] 1274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6c,0x28,0x58,0xc3] 1275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1276*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.unpckh.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1277*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.unpckh.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1278*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1279*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1280*9880d681SAndroid Build Coastguard Worker} 1281*9880d681SAndroid Build Coastguard Worker 1282*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.unpckl.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1283*9880d681SAndroid Build Coastguard Worker 1284*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_unpckl_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1285*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckl_pd_128: 1286*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1287*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklpd %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x14,0xd9] 1288*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[0],xmm1[0] 1289*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1290*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklpd %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x14,0xd1] 1291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[0],xmm1[0] 1292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0x58,0xc3] 1293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1294*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.unpckl.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1295*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.unpckl.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1296*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1297*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1298*9880d681SAndroid Build Coastguard Worker} 1299*9880d681SAndroid Build Coastguard Worker 1300*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.unpckl.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1301*9880d681SAndroid Build Coastguard Worker 1302*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_unpckl_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckl_pd_256: 1304*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklpd %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x14,0xd9] 1306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2] 1307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1308*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklpd %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x14,0xd1] 1309*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[0],ymm1[0],ymm0[2],ymm1[2] 1310*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc3] 1311*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1312*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.unpckl.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1313*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.unpckl.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1314*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1315*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1316*9880d681SAndroid Build Coastguard Worker} 1317*9880d681SAndroid Build Coastguard Worker 1318*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.unpckl.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1319*9880d681SAndroid Build Coastguard Worker 1320*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_unpckl_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1321*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckl_ps_128: 1322*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklps %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0x7c,0x08,0x14,0xd9] 1324*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] 1325*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x14,0xd1] 1327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[0],xmm1[0],xmm0[1],xmm1[1] 1328*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc3] 1329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1330*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.unpckl.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1331*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.unpckl.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1332*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1333*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1334*9880d681SAndroid Build Coastguard Worker} 1335*9880d681SAndroid Build Coastguard Worker 1336*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.unpckl.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1337*9880d681SAndroid Build Coastguard Worker 1338*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_unpckl_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1339*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_unpckl_ps_256: 1340*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1341*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklps %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0x7c,0x28,0x14,0xd9] 1342*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5] 1343*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1344*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vunpcklps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x14,0xd1] 1345*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5] 1346*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6c,0x28,0x58,0xc3] 1347*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1348*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.unpckl.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1349*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.unpckl.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1350*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1351*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1352*9880d681SAndroid Build Coastguard Worker} 1353*9880d681SAndroid Build Coastguard Worker 1354*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.punpckhd.q.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 1355*9880d681SAndroid Build Coastguard Worker 1356*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_mask_punpckhd_q_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3) { 1357*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckhd_q_128: 1358*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhdq %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0x7d,0x08,0x6a,0xd9] 1360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] 1361*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1362*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhdq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x6a,0xd1] 1363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[2],xmm1[2],xmm0[3],xmm1[3] 1364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfe,0xc3] 1365*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1366*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.punpckhd.q.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3) 1367*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.punpckhd.q.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 -1) 1368*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i32> %res, %res1 1369*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res2 1370*9880d681SAndroid Build Coastguard Worker} 1371*9880d681SAndroid Build Coastguard Worker 1372*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.punpckld.q.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 1373*9880d681SAndroid Build Coastguard Worker 1374*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_mask_punpckld_q_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3) { 1375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckld_q_128: 1376*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1377*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckldq %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0x7d,0x08,0x62,0xd9] 1378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] 1379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckldq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x62,0xd1] 1381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} = xmm0[0],xmm1[0],xmm0[1],xmm1[1] 1382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfe,0xc3] 1383*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1384*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.punpckld.q.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3) 1385*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.punpckld.q.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 -1) 1386*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i32> %res, %res1 1387*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res2 1388*9880d681SAndroid Build Coastguard Worker} 1389*9880d681SAndroid Build Coastguard Worker 1390*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.punpckhd.q.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 1391*9880d681SAndroid Build Coastguard Worker 1392*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_mask_punpckhd_q_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3) { 1393*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckhd_q_256: 1394*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1395*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhdq %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0x7d,0x28,0x6a,0xd9] 1396*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7] 1397*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1398*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhdq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x6a,0xd1] 1399*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7] 1400*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfe,0xc3] 1401*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1402*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.punpckhd.q.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3) 1403*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.punpckhd.q.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 -1) 1404*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i32> %res, %res1 1405*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res2 1406*9880d681SAndroid Build Coastguard Worker} 1407*9880d681SAndroid Build Coastguard Worker 1408*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.punpckld.q.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 1409*9880d681SAndroid Build Coastguard Worker 1410*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_mask_punpckld_q_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3) { 1411*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckld_q_256: 1412*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckldq %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0x7d,0x28,0x62,0xd9] 1414*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5] 1415*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1416*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckldq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x62,0xd1] 1417*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5] 1418*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfe,0xc3] 1419*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1420*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.punpckld.q.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3) 1421*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.punpckld.q.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 -1) 1422*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i32> %res, %res1 1423*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res2 1424*9880d681SAndroid Build Coastguard Worker} 1425*9880d681SAndroid Build Coastguard Worker 1426*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.punpckhqd.q.128(<2 x i64>, <2 x i64>, <2 x i64>, i8) 1427*9880d681SAndroid Build Coastguard Worker 1428*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_punpckhqd_q_128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 %x3) { 1429*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckhqd_q_128: 1430*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhqdq %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x6d,0xd9] 1432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[1],xmm1[1] 1433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhqdq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x6d,0xd1] 1435*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[1],xmm1[1] 1436*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0xd4,0xc3] 1437*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1438*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.punpckhqd.q.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 %x3) 1439*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.punpckhqd.q.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 -1) 1440*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1441*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1442*9880d681SAndroid Build Coastguard Worker} 1443*9880d681SAndroid Build Coastguard Worker 1444*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.punpcklqd.q.128(<2 x i64>, <2 x i64>, <2 x i64>, i8) 1445*9880d681SAndroid Build Coastguard Worker 1446*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_punpcklqd_q_128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 %x3) { 1447*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpcklqd_q_128: 1448*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpcklqdq %xmm1, %xmm0, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x6c,0xd9] 1450*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm3 = xmm0[0],xmm1[0] 1451*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpcklqdq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x6c,0xd1] 1453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 = xmm0[0],xmm1[0] 1454*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm3, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0xd4,0xc3] 1455*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1456*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.punpcklqd.q.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 %x3) 1457*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.punpcklqd.q.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2, i8 -1) 1458*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1459*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1460*9880d681SAndroid Build Coastguard Worker} 1461*9880d681SAndroid Build Coastguard Worker 1462*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.punpcklqd.q.256(<4 x i64>, <4 x i64>, <4 x i64>, i8) 1463*9880d681SAndroid Build Coastguard Worker 1464*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_punpcklqd_q_256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 %x3) { 1465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpcklqd_q_256: 1466*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpcklqdq %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x6c,0xd9] 1468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2] 1469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpcklqdq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x6c,0xd1] 1471*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2] 1472*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc3] 1473*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1474*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.punpcklqd.q.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 %x3) 1475*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.punpcklqd.q.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 -1) 1476*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1477*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1478*9880d681SAndroid Build Coastguard Worker} 1479*9880d681SAndroid Build Coastguard Worker 1480*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.punpckhqd.q.256(<4 x i64>, <4 x i64>, <4 x i64>, i8) 1481*9880d681SAndroid Build Coastguard Worker 1482*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_punpckhqd_q_256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 %x3) { 1483*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_punpckhqd_q_256: 1484*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1485*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhqdq %ymm1, %ymm0, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x6d,0xd9] 1486*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm3 = ymm0[1],ymm1[1],ymm0[3],ymm1[3] 1487*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1488*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpunpckhqdq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x6d,0xd1] 1489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 = ymm0[1],ymm1[1],ymm0[3],ymm1[3] 1490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm3, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc3] 1491*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1492*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.punpckhqd.q.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 %x3) 1493*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.punpckhqd.q.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2, i8 -1) 1494*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1495*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1496*9880d681SAndroid Build Coastguard Worker} 1497*9880d681SAndroid Build Coastguard Worker 1498*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 1499*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rr_128: 1500*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1501*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdb,0xc1] 1502*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1503*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1504*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1505*9880d681SAndroid Build Coastguard Worker} 1506*9880d681SAndroid Build Coastguard Worker 1507*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) { 1508*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rrk_128: 1509*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1510*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdb,0xd1] 1512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1514*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1515*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1516*9880d681SAndroid Build Coastguard Worker} 1517*9880d681SAndroid Build Coastguard Worker 1518*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 1519*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rrkz_128: 1520*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1521*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1522*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdb,0xc1] 1523*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1524*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1525*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1526*9880d681SAndroid Build Coastguard Worker} 1527*9880d681SAndroid Build Coastguard Worker 1528*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 1529*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rm_128: 1530*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1531*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdb,0x07] 1532*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1533*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1534*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1535*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1536*9880d681SAndroid Build Coastguard Worker} 1537*9880d681SAndroid Build Coastguard Worker 1538*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1539*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmk_128: 1540*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1541*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1542*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdb,0x0f] 1543*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1544*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1545*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1546*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1547*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1548*9880d681SAndroid Build Coastguard Worker} 1549*9880d681SAndroid Build Coastguard Worker 1550*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 1551*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmkz_128: 1552*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1554*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdb,0x07] 1555*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1556*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1557*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1558*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1559*9880d681SAndroid Build Coastguard Worker} 1560*9880d681SAndroid Build Coastguard Worker 1561*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 1562*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmb_128: 1563*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x18,0xdb,0x07] 1565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1566*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1567*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1568*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1569*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1570*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1571*9880d681SAndroid Build Coastguard Worker} 1572*9880d681SAndroid Build Coastguard Worker 1573*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1574*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmbk_128: 1575*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1576*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1577*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x19,0xdb,0x0f] 1578*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1579*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1580*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1581*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1582*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1583*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1584*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1585*9880d681SAndroid Build Coastguard Worker} 1586*9880d681SAndroid Build Coastguard Worker 1587*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_and_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 1588*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmbkz_128: 1589*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1590*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1591*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x99,0xdb,0x07] 1592*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1593*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1594*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1595*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1596*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1597*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1598*9880d681SAndroid Build Coastguard Worker} 1599*9880d681SAndroid Build Coastguard Worker 1600*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.pand.d.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 1601*9880d681SAndroid Build Coastguard Worker 1602*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 1603*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rr_256: 1604*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1605*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdb,0xc1] 1606*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1607*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1608*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1609*9880d681SAndroid Build Coastguard Worker} 1610*9880d681SAndroid Build Coastguard Worker 1611*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) { 1612*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rrk_256: 1613*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1614*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1615*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdb,0xd1] 1616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1618*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1619*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1620*9880d681SAndroid Build Coastguard Worker} 1621*9880d681SAndroid Build Coastguard Worker 1622*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 1623*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rrkz_256: 1624*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1625*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1626*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdb,0xc1] 1627*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1628*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1629*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1630*9880d681SAndroid Build Coastguard Worker} 1631*9880d681SAndroid Build Coastguard Worker 1632*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 1633*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rm_256: 1634*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1635*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdb,0x07] 1636*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1637*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1638*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1639*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1640*9880d681SAndroid Build Coastguard Worker} 1641*9880d681SAndroid Build Coastguard Worker 1642*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <8 x i32> %passThru, i8 %mask) { 1643*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmk_256: 1644*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1645*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1646*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdb,0x0f] 1647*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1649*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1650*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1651*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1652*9880d681SAndroid Build Coastguard Worker} 1653*9880d681SAndroid Build Coastguard Worker 1654*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i8 %mask) { 1655*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmkz_256: 1656*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1657*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1658*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdb,0x07] 1659*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1660*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1661*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1662*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1663*9880d681SAndroid Build Coastguard Worker} 1664*9880d681SAndroid Build Coastguard Worker 1665*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 1666*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmb_256: 1667*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x38,0xdb,0x07] 1669*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1670*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1671*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1672*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1673*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1674*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1675*9880d681SAndroid Build Coastguard Worker} 1676*9880d681SAndroid Build Coastguard Worker 1677*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <8 x i32> %passThru, i8 %mask) { 1678*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmbk_256: 1679*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1680*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1681*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x39,0xdb,0x0f] 1682*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1684*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1685*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1686*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1687*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1688*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1689*9880d681SAndroid Build Coastguard Worker} 1690*9880d681SAndroid Build Coastguard Worker 1691*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_and_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i8 %mask) { 1692*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_epi32_rmbkz_256: 1693*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1694*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1695*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandd (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xb9,0xdb,0x07] 1696*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1697*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1698*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1699*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1700*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1701*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1702*9880d681SAndroid Build Coastguard Worker} 1703*9880d681SAndroid Build Coastguard Worker 1704*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.pand.d.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 1705*9880d681SAndroid Build Coastguard Worker 1706*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 1707*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rr_128: 1708*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1709*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xeb,0xc1] 1710*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1711*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1712*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1713*9880d681SAndroid Build Coastguard Worker} 1714*9880d681SAndroid Build Coastguard Worker 1715*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) { 1716*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rrk_128: 1717*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1718*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xeb,0xd1] 1720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1722*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1723*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1724*9880d681SAndroid Build Coastguard Worker} 1725*9880d681SAndroid Build Coastguard Worker 1726*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 1727*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rrkz_128: 1728*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1729*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1730*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xeb,0xc1] 1731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1732*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1733*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1734*9880d681SAndroid Build Coastguard Worker} 1735*9880d681SAndroid Build Coastguard Worker 1736*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 1737*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rm_128: 1738*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1739*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xeb,0x07] 1740*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1741*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1742*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1743*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1744*9880d681SAndroid Build Coastguard Worker} 1745*9880d681SAndroid Build Coastguard Worker 1746*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1747*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmk_128: 1748*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1749*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1750*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xeb,0x0f] 1751*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1752*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1753*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1754*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1755*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1756*9880d681SAndroid Build Coastguard Worker} 1757*9880d681SAndroid Build Coastguard Worker 1758*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 1759*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmkz_128: 1760*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xeb,0x07] 1763*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1764*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1765*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1766*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1767*9880d681SAndroid Build Coastguard Worker} 1768*9880d681SAndroid Build Coastguard Worker 1769*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 1770*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmb_128: 1771*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1772*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x18,0xeb,0x07] 1773*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1774*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1775*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1776*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1777*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1778*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1779*9880d681SAndroid Build Coastguard Worker} 1780*9880d681SAndroid Build Coastguard Worker 1781*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1782*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmbk_128: 1783*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1784*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1785*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x19,0xeb,0x0f] 1786*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1787*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1788*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1789*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1790*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1791*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1792*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1793*9880d681SAndroid Build Coastguard Worker} 1794*9880d681SAndroid Build Coastguard Worker 1795*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_or_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 1796*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmbkz_128: 1797*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1798*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1799*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x99,0xeb,0x07] 1800*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1801*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1802*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1803*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1804*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1805*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1806*9880d681SAndroid Build Coastguard Worker} 1807*9880d681SAndroid Build Coastguard Worker 1808*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.por.d.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 1809*9880d681SAndroid Build Coastguard Worker 1810*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 1811*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rr_256: 1812*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1813*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xeb,0xc1] 1814*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1815*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1816*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1817*9880d681SAndroid Build Coastguard Worker} 1818*9880d681SAndroid Build Coastguard Worker 1819*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) { 1820*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rrk_256: 1821*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1822*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1823*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xeb,0xd1] 1824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1826*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1827*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1828*9880d681SAndroid Build Coastguard Worker} 1829*9880d681SAndroid Build Coastguard Worker 1830*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 1831*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rrkz_256: 1832*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1833*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1834*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xeb,0xc1] 1835*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1836*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1837*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1838*9880d681SAndroid Build Coastguard Worker} 1839*9880d681SAndroid Build Coastguard Worker 1840*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 1841*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rm_256: 1842*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1843*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xeb,0x07] 1844*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1845*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1846*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1847*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1848*9880d681SAndroid Build Coastguard Worker} 1849*9880d681SAndroid Build Coastguard Worker 1850*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <8 x i32> %passThru, i8 %mask) { 1851*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmk_256: 1852*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1853*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1854*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xeb,0x0f] 1855*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1856*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1857*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1858*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1859*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1860*9880d681SAndroid Build Coastguard Worker} 1861*9880d681SAndroid Build Coastguard Worker 1862*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i8 %mask) { 1863*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmkz_256: 1864*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1865*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1866*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xeb,0x07] 1867*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1868*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 1869*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1870*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1871*9880d681SAndroid Build Coastguard Worker} 1872*9880d681SAndroid Build Coastguard Worker 1873*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 1874*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmb_256: 1875*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1876*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x38,0xeb,0x07] 1877*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1878*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1879*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1880*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1881*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 1882*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1883*9880d681SAndroid Build Coastguard Worker} 1884*9880d681SAndroid Build Coastguard Worker 1885*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <8 x i32> %passThru, i8 %mask) { 1886*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmbk_256: 1887*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1888*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1889*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x39,0xeb,0x0f] 1890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1892*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1893*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1894*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1895*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 1896*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1897*9880d681SAndroid Build Coastguard Worker} 1898*9880d681SAndroid Build Coastguard Worker 1899*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_or_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i8 %mask) { 1900*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_epi32_rmbkz_256: 1901*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1902*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1903*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpord (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xb9,0xeb,0x07] 1904*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1905*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1906*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 1907*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 1908*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 1909*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 1910*9880d681SAndroid Build Coastguard Worker} 1911*9880d681SAndroid Build Coastguard Worker 1912*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.por.d.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 1913*9880d681SAndroid Build Coastguard Worker 1914*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 1915*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rr_128: 1916*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1917*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xef,0xc1] 1918*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1919*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1920*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1921*9880d681SAndroid Build Coastguard Worker} 1922*9880d681SAndroid Build Coastguard Worker 1923*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) { 1924*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rrk_128: 1925*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1926*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1927*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xef,0xd1] 1928*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1929*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1930*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1931*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1932*9880d681SAndroid Build Coastguard Worker} 1933*9880d681SAndroid Build Coastguard Worker 1934*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 1935*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rrkz_128: 1936*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1937*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1938*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xef,0xc1] 1939*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1940*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1941*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1942*9880d681SAndroid Build Coastguard Worker} 1943*9880d681SAndroid Build Coastguard Worker 1944*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 1945*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rm_128: 1946*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1947*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xef,0x07] 1948*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1949*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1950*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1951*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1952*9880d681SAndroid Build Coastguard Worker} 1953*9880d681SAndroid Build Coastguard Worker 1954*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1955*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmk_128: 1956*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1957*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1958*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xef,0x0f] 1959*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1960*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1961*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1962*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 1963*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1964*9880d681SAndroid Build Coastguard Worker} 1965*9880d681SAndroid Build Coastguard Worker 1966*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 1967*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmkz_128: 1968*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1969*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1970*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xef,0x07] 1971*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1972*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 1973*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 1974*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1975*9880d681SAndroid Build Coastguard Worker} 1976*9880d681SAndroid Build Coastguard Worker 1977*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 1978*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmb_128: 1979*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1980*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x18,0xef,0x07] 1981*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1982*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1983*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1984*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1985*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 1986*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 1987*9880d681SAndroid Build Coastguard Worker} 1988*9880d681SAndroid Build Coastguard Worker 1989*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <4 x i32> %passThru, i8 %mask) { 1990*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmbk_128: 1991*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x19,0xef,0x0f] 1994*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1995*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1996*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 1997*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 1998*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 1999*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 2000*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2001*9880d681SAndroid Build Coastguard Worker} 2002*9880d681SAndroid Build Coastguard Worker 2003*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_xor_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 2004*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmbkz_128: 2005*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2006*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2007*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x99,0xef,0x07] 2008*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2009*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2010*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2011*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2012*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 2013*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2014*9880d681SAndroid Build Coastguard Worker} 2015*9880d681SAndroid Build Coastguard Worker 2016*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.pxor.d.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 2017*9880d681SAndroid Build Coastguard Worker 2018*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 2019*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rr_256: 2020*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2021*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xef,0xc1] 2022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2023*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2024*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2025*9880d681SAndroid Build Coastguard Worker} 2026*9880d681SAndroid Build Coastguard Worker 2027*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) { 2028*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rrk_256: 2029*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2030*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xef,0xd1] 2032*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2033*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2034*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2035*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2036*9880d681SAndroid Build Coastguard Worker} 2037*9880d681SAndroid Build Coastguard Worker 2038*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 2039*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rrkz_256: 2040*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2041*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2042*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xef,0xc1] 2043*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2044*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2045*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2046*9880d681SAndroid Build Coastguard Worker} 2047*9880d681SAndroid Build Coastguard Worker 2048*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 2049*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rm_256: 2050*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2051*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xef,0x07] 2052*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2053*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2054*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2055*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2056*9880d681SAndroid Build Coastguard Worker} 2057*9880d681SAndroid Build Coastguard Worker 2058*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <8 x i32> %passThru, i8 %mask) { 2059*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmk_256: 2060*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2061*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2062*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xef,0x0f] 2063*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2064*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2065*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2066*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2067*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2068*9880d681SAndroid Build Coastguard Worker} 2069*9880d681SAndroid Build Coastguard Worker 2070*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i8 %mask) { 2071*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmkz_256: 2072*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2073*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2074*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xef,0x07] 2075*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2076*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2077*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2078*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2079*9880d681SAndroid Build Coastguard Worker} 2080*9880d681SAndroid Build Coastguard Worker 2081*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 2082*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmb_256: 2083*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2084*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x38,0xef,0x07] 2085*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2086*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2087*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2088*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2089*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2090*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2091*9880d681SAndroid Build Coastguard Worker} 2092*9880d681SAndroid Build Coastguard Worker 2093*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <8 x i32> %passThru, i8 %mask) { 2094*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmbk_256: 2095*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2096*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2097*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x39,0xef,0x0f] 2098*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2099*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2100*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2101*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2102*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2103*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2104*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2105*9880d681SAndroid Build Coastguard Worker} 2106*9880d681SAndroid Build Coastguard Worker 2107*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_xor_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i8 %mask) { 2108*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_epi32_rmbkz_256: 2109*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpxord (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xb9,0xef,0x07] 2112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2113*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2114*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2115*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2116*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2117*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2118*9880d681SAndroid Build Coastguard Worker} 2119*9880d681SAndroid Build Coastguard Worker 2120*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.pxor.d.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 2121*9880d681SAndroid Build Coastguard Worker 2122*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 2123*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rr_128: 2124*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdf,0xc1] 2126*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2127*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 2128*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2129*9880d681SAndroid Build Coastguard Worker} 2130*9880d681SAndroid Build Coastguard Worker 2131*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) { 2132*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rrk_128: 2133*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdf,0xd1] 2136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2137*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2138*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 2139*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2140*9880d681SAndroid Build Coastguard Worker} 2141*9880d681SAndroid Build Coastguard Worker 2142*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 2143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rrkz_128: 2144*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2145*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2146*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdf,0xc1] 2147*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2148*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 2149*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2150*9880d681SAndroid Build Coastguard Worker} 2151*9880d681SAndroid Build Coastguard Worker 2152*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 2153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rm_128: 2154*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2155*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdf,0x07] 2156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2157*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2158*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 2159*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2160*9880d681SAndroid Build Coastguard Worker} 2161*9880d681SAndroid Build Coastguard Worker 2162*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <4 x i32> %passThru, i8 %mask) { 2163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmk_128: 2164*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdf,0x0f] 2167*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2169*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2170*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 2171*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2172*9880d681SAndroid Build Coastguard Worker} 2173*9880d681SAndroid Build Coastguard Worker 2174*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 2175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmkz_128: 2176*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdf,0x07] 2179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2180*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2181*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 2182*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2183*9880d681SAndroid Build Coastguard Worker} 2184*9880d681SAndroid Build Coastguard Worker 2185*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 2186*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmb_128: 2187*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2188*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x18,0xdf,0x07] 2189*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2190*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2191*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2192*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2193*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 -1) 2194*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2195*9880d681SAndroid Build Coastguard Worker} 2196*9880d681SAndroid Build Coastguard Worker 2197*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <4 x i32> %passThru, i8 %mask) { 2198*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmbk_128: 2199*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x19,0xdf,0x0f] 2202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2204*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2205*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2206*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2207*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> %passThru, i8 %mask) 2208*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2209*9880d681SAndroid Build Coastguard Worker} 2210*9880d681SAndroid Build Coastguard Worker 2211*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_mask_andnot_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 2212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmbkz_128: 2213*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x99,0xdf,0x07] 2216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2217*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2218*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2219*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2220*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32> %a, <4 x i32> %b, <4 x i32> zeroinitializer, i8 %mask) 2221*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2222*9880d681SAndroid Build Coastguard Worker} 2223*9880d681SAndroid Build Coastguard Worker 2224*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.pandn.d.128(<4 x i32>, <4 x i32>, <4 x i32>, i8) 2225*9880d681SAndroid Build Coastguard Worker 2226*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 2227*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rr_256: 2228*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2229*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdf,0xc1] 2230*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2231*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2232*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2233*9880d681SAndroid Build Coastguard Worker} 2234*9880d681SAndroid Build Coastguard Worker 2235*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) { 2236*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rrk_256: 2237*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdf,0xd1] 2240*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2242*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2243*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2244*9880d681SAndroid Build Coastguard Worker} 2245*9880d681SAndroid Build Coastguard Worker 2246*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i8 %mask) { 2247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rrkz_256: 2248*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2249*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2250*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdf,0xc1] 2251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2252*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2253*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2254*9880d681SAndroid Build Coastguard Worker} 2255*9880d681SAndroid Build Coastguard Worker 2256*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 2257*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rm_256: 2258*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdf,0x07] 2260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2261*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2262*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2263*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2264*9880d681SAndroid Build Coastguard Worker} 2265*9880d681SAndroid Build Coastguard Worker 2266*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <8 x i32> %passThru, i8 %mask) { 2267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmk_256: 2268*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdf,0x0f] 2271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2273*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2274*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2275*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2276*9880d681SAndroid Build Coastguard Worker} 2277*9880d681SAndroid Build Coastguard Worker 2278*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i8 %mask) { 2279*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmkz_256: 2280*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdf,0x07] 2283*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2284*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2285*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2286*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2287*9880d681SAndroid Build Coastguard Worker} 2288*9880d681SAndroid Build Coastguard Worker 2289*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 2290*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmb_256: 2291*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x38,0xdf,0x07] 2293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2294*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2295*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2296*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2297*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 -1) 2298*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2299*9880d681SAndroid Build Coastguard Worker} 2300*9880d681SAndroid Build Coastguard Worker 2301*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <8 x i32> %passThru, i8 %mask) { 2302*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmbk_256: 2303*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x39,0xdf,0x0f] 2306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2308*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2309*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2310*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2311*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> %passThru, i8 %mask) 2312*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2313*9880d681SAndroid Build Coastguard Worker} 2314*9880d681SAndroid Build Coastguard Worker 2315*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_andnot_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i8 %mask) { 2316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi32_rmbkz_256: 2317*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnd (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xb9,0xdf,0x07] 2320*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2321*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2322*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2323*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2324*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32> %a, <8 x i32> %b, <8 x i32> zeroinitializer, i8 %mask) 2325*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2326*9880d681SAndroid Build Coastguard Worker} 2327*9880d681SAndroid Build Coastguard Worker 2328*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.pandn.d.256(<8 x i32>, <8 x i32>, <8 x i32>, i8) 2329*9880d681SAndroid Build Coastguard Worker 2330*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rr_128(<2 x i64> %a, <2 x i64> %b) { 2331*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rr_128: 2332*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2333*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xdf,0xc1] 2334*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2335*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 2336*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2337*9880d681SAndroid Build Coastguard Worker} 2338*9880d681SAndroid Build Coastguard Worker 2339*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rrk_128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) { 2340*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rrk_128: 2341*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2342*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2343*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0xdf,0xd1] 2344*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2345*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2346*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 2347*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2348*9880d681SAndroid Build Coastguard Worker} 2349*9880d681SAndroid Build Coastguard Worker 2350*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rrkz_128(<2 x i64> %a, <2 x i64> %b, i8 %mask) { 2351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rrkz_128: 2352*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2353*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2354*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0xdf,0xc1] 2355*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2356*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 2357*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2358*9880d681SAndroid Build Coastguard Worker} 2359*9880d681SAndroid Build Coastguard Worker 2360*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rm_128(<2 x i64> %a, <2 x i64>* %ptr_b) { 2361*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rm_128: 2362*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xdf,0x07] 2364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2365*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 2366*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 2367*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2368*9880d681SAndroid Build Coastguard Worker} 2369*9880d681SAndroid Build Coastguard Worker 2370*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rmk_128(<2 x i64> %a, <2 x i64>* %ptr_b, <2 x i64> %passThru, i8 %mask) { 2371*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmk_128: 2372*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2373*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2374*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0xdf,0x0f] 2375*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2376*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2377*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 2378*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 2379*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2380*9880d681SAndroid Build Coastguard Worker} 2381*9880d681SAndroid Build Coastguard Worker 2382*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rmkz_128(<2 x i64> %a, <2 x i64>* %ptr_b, i8 %mask) { 2383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmkz_128: 2384*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2385*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2386*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0xdf,0x07] 2387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2388*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 2389*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 2390*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2391*9880d681SAndroid Build Coastguard Worker} 2392*9880d681SAndroid Build Coastguard Worker 2393*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rmb_128(<2 x i64> %a, i64* %ptr_b) { 2394*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmb_128: 2395*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2396*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to2}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x18,0xdf,0x07] 2397*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2398*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2399*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 2400*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 2401*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 2402*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2403*9880d681SAndroid Build Coastguard Worker} 2404*9880d681SAndroid Build Coastguard Worker 2405*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rmbk_128(<2 x i64> %a, i64* %ptr_b, <2 x i64> %passThru, i8 %mask) { 2406*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmbk_128: 2407*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2408*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2409*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to2}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x19,0xdf,0x0f] 2410*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2412*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2413*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 2414*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 2415*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 2416*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2417*9880d681SAndroid Build Coastguard Worker} 2418*9880d681SAndroid Build Coastguard Worker 2419*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_andnot_epi64_rmbkz_128(<2 x i64> %a, i64* %ptr_b, i8 %mask) { 2420*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmbkz_128: 2421*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2423*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to2}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x99,0xdf,0x07] 2424*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2425*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2426*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 2427*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 2428*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 2429*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2430*9880d681SAndroid Build Coastguard Worker} 2431*9880d681SAndroid Build Coastguard Worker 2432*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.pandn.q.128(<2 x i64>, <2 x i64>, <2 x i64>, i8) 2433*9880d681SAndroid Build Coastguard Worker 2434*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rr_256(<4 x i64> %a, <4 x i64> %b) { 2435*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rr_256: 2436*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2437*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xdf,0xc1] 2438*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2439*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 2440*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2441*9880d681SAndroid Build Coastguard Worker} 2442*9880d681SAndroid Build Coastguard Worker 2443*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rrk_256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) { 2444*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rrk_256: 2445*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2446*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2447*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0xdf,0xd1] 2448*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2450*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 2451*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2452*9880d681SAndroid Build Coastguard Worker} 2453*9880d681SAndroid Build Coastguard Worker 2454*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rrkz_256(<4 x i64> %a, <4 x i64> %b, i8 %mask) { 2455*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rrkz_256: 2456*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2457*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2458*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0xdf,0xc1] 2459*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2460*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 2461*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2462*9880d681SAndroid Build Coastguard Worker} 2463*9880d681SAndroid Build Coastguard Worker 2464*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rm_256(<4 x i64> %a, <4 x i64>* %ptr_b) { 2465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rm_256: 2466*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xdf,0x07] 2468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2469*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 2470*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 2471*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2472*9880d681SAndroid Build Coastguard Worker} 2473*9880d681SAndroid Build Coastguard Worker 2474*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rmk_256(<4 x i64> %a, <4 x i64>* %ptr_b, <4 x i64> %passThru, i8 %mask) { 2475*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmk_256: 2476*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2477*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2478*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0xdf,0x0f] 2479*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2480*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2481*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 2482*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 2483*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2484*9880d681SAndroid Build Coastguard Worker} 2485*9880d681SAndroid Build Coastguard Worker 2486*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rmkz_256(<4 x i64> %a, <4 x i64>* %ptr_b, i8 %mask) { 2487*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmkz_256: 2488*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0xdf,0x07] 2491*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2492*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 2493*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 2494*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2495*9880d681SAndroid Build Coastguard Worker} 2496*9880d681SAndroid Build Coastguard Worker 2497*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rmb_256(<4 x i64> %a, i64* %ptr_b) { 2498*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmb_256: 2499*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2500*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to4}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x38,0xdf,0x07] 2501*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2502*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2503*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 2504*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 2505*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 2506*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2507*9880d681SAndroid Build Coastguard Worker} 2508*9880d681SAndroid Build Coastguard Worker 2509*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rmbk_256(<4 x i64> %a, i64* %ptr_b, <4 x i64> %passThru, i8 %mask) { 2510*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmbk_256: 2511*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to4}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x39,0xdf,0x0f] 2514*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2515*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2516*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2517*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 2518*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 2519*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 2520*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2521*9880d681SAndroid Build Coastguard Worker} 2522*9880d681SAndroid Build Coastguard Worker 2523*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_andnot_epi64_rmbkz_256(<4 x i64> %a, i64* %ptr_b, i8 %mask) { 2524*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_epi64_rmbkz_256: 2525*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2527*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpandnq (%rdi){1to4}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xb9,0xdf,0x07] 2528*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2529*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 2530*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 2531*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 2532*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 2533*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2534*9880d681SAndroid Build Coastguard Worker} 2535*9880d681SAndroid Build Coastguard Worker 2536*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.pandn.q.256(<4 x i64>, <4 x i64>, <4 x i64>, i8) 2537