xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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