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=+avx512bw -mattr=+avx512vl --show-mc-encoding| FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; 256-bit 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_cmp_b_256(<32 x i8> %a0, <32 x i8> %a1) { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_cmp_b_256: 8*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x00] 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r8d ## encoding: [0xc5,0x7b,0x93,0xc0] 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x01] 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r9d ## encoding: [0xc5,0x7b,0x93,0xc8] 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x02] 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r10d ## encoding: [0xc5,0x7b,0x93,0xd0] 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x03] 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %esi ## encoding: [0xc5,0xfb,0x93,0xf0] 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x04] 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edi ## encoding: [0xc5,0xfb,0x93,0xf8] 19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x05] 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x06] 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc1,0x07] 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edx ## encoding: [0xc5,0xfb,0x93,0xd0] 25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7] 26*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc0,0x01] 27*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc1,0x02] 28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %edx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc2,0x03] 29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %r8d, %xmm1 ## encoding: [0x62,0xd1,0x7d,0x08,0x6e,0xc8] 30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %r9d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xc9,0x01] 31*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %r10d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xca,0x02] 32*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %esi, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x22,0xce,0x03] 33*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti32x4 $1, %xmm0, %ymm1, %ymm0 ## encoding: [0x62,0xf3,0x75,0x28,0x38,0xc0,0x01] 34*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 35*9880d681SAndroid Build Coastguard Worker %res0 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 0, i32 -1) 36*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i32> undef, i32 %res0, i32 0 37*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 1, i32 -1) 38*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i32> %vec0, i32 %res1, i32 1 39*9880d681SAndroid Build Coastguard Worker %res2 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 2, i32 -1) 40*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i32> %vec1, i32 %res2, i32 2 41*9880d681SAndroid Build Coastguard Worker %res3 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 3, i32 -1) 42*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i32> %vec2, i32 %res3, i32 3 43*9880d681SAndroid Build Coastguard Worker %res4 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 4, i32 -1) 44*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i32> %vec3, i32 %res4, i32 4 45*9880d681SAndroid Build Coastguard Worker %res5 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 5, i32 -1) 46*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i32> %vec4, i32 %res5, i32 5 47*9880d681SAndroid Build Coastguard Worker %res6 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 6, i32 -1) 48*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i32> %vec5, i32 %res6, i32 6 49*9880d681SAndroid Build Coastguard Worker %res7 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 7, i32 -1) 50*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i32> %vec6, i32 %res7, i32 7 51*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %vec7 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_cmp_b_256(<32 x i8> %a0, <32 x i8> %a1, i32 %mask) { 55*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_cmp_b_256: 56*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 57*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 58*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x00] 59*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r8d ## encoding: [0xc5,0x7b,0x93,0xc0] 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x01] 61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r9d ## encoding: [0xc5,0x7b,0x93,0xc8] 62*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x02] 63*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r10d ## encoding: [0xc5,0x7b,0x93,0xd0] 64*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x03] 65*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %esi ## encoding: [0xc5,0xfb,0x93,0xf0] 66*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x04] 67*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edi ## encoding: [0xc5,0xfb,0x93,0xf8] 68*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x05] 69*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x06] 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 72*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3f,0xc1,0x07] 73*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edx ## encoding: [0xc5,0xfb,0x93,0xd0] 74*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7] 75*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc0,0x01] 76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc1,0x02] 77*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %edx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc2,0x03] 78*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %r8d, %xmm1 ## encoding: [0x62,0xd1,0x7d,0x08,0x6e,0xc8] 79*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %r9d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xc9,0x01] 80*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %r10d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xca,0x02] 81*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %esi, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x22,0xce,0x03] 82*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti32x4 $1, %xmm0, %ymm1, %ymm0 ## encoding: [0x62,0xf3,0x75,0x28,0x38,0xc0,0x01] 83*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 84*9880d681SAndroid Build Coastguard Worker %res0 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 0, i32 %mask) 85*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i32> undef, i32 %res0, i32 0 86*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 1, i32 %mask) 87*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i32> %vec0, i32 %res1, i32 1 88*9880d681SAndroid Build Coastguard Worker %res2 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 2, i32 %mask) 89*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i32> %vec1, i32 %res2, i32 2 90*9880d681SAndroid Build Coastguard Worker %res3 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 3, i32 %mask) 91*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i32> %vec2, i32 %res3, i32 3 92*9880d681SAndroid Build Coastguard Worker %res4 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 4, i32 %mask) 93*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i32> %vec3, i32 %res4, i32 4 94*9880d681SAndroid Build Coastguard Worker %res5 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 5, i32 %mask) 95*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i32> %vec4, i32 %res5, i32 5 96*9880d681SAndroid Build Coastguard Worker %res6 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 6, i32 %mask) 97*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i32> %vec5, i32 %res6, i32 6 98*9880d681SAndroid Build Coastguard Worker %res7 = call i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 7, i32 %mask) 99*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i32> %vec6, i32 %res7, i32 7 100*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %vec7 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx512.mask.cmp.b.256(<32 x i8>, <32 x i8>, i32, i32) nounwind readnone 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_ucmp_b_256(<32 x i8> %a0, <32 x i8> %a1) { 106*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_ucmp_b_256: 107*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x00] 109*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r8d ## encoding: [0xc5,0x7b,0x93,0xc0] 110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x01] 111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r9d ## encoding: [0xc5,0x7b,0x93,0xc8] 112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x02] 113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r10d ## encoding: [0xc5,0x7b,0x93,0xd0] 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x03] 115*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %esi ## encoding: [0xc5,0xfb,0x93,0xf0] 116*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x04] 117*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edi ## encoding: [0xc5,0xfb,0x93,0xf8] 118*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x05] 119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x06] 121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordub %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x3e,0xc1,0x07] 123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edx ## encoding: [0xc5,0xfb,0x93,0xd0] 124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7] 125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc0,0x01] 126*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc1,0x02] 127*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %edx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc2,0x03] 128*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %r8d, %xmm1 ## encoding: [0x62,0xd1,0x7d,0x08,0x6e,0xc8] 129*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %r9d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xc9,0x01] 130*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %r10d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xca,0x02] 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %esi, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x22,0xce,0x03] 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti32x4 $1, %xmm0, %ymm1, %ymm0 ## encoding: [0x62,0xf3,0x75,0x28,0x38,0xc0,0x01] 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 134*9880d681SAndroid Build Coastguard Worker %res0 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 0, i32 -1) 135*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i32> undef, i32 %res0, i32 0 136*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 1, i32 -1) 137*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i32> %vec0, i32 %res1, i32 1 138*9880d681SAndroid Build Coastguard Worker %res2 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 2, i32 -1) 139*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i32> %vec1, i32 %res2, i32 2 140*9880d681SAndroid Build Coastguard Worker %res3 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 3, i32 -1) 141*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i32> %vec2, i32 %res3, i32 3 142*9880d681SAndroid Build Coastguard Worker %res4 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 4, i32 -1) 143*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i32> %vec3, i32 %res4, i32 4 144*9880d681SAndroid Build Coastguard Worker %res5 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 5, i32 -1) 145*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i32> %vec4, i32 %res5, i32 5 146*9880d681SAndroid Build Coastguard Worker %res6 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 6, i32 -1) 147*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i32> %vec5, i32 %res6, i32 6 148*9880d681SAndroid Build Coastguard Worker %res7 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 7, i32 -1) 149*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i32> %vec6, i32 %res7, i32 7 150*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %vec7 151*9880d681SAndroid Build Coastguard Worker} 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_mask_ucmp_b_256(<32 x i8> %a0, <32 x i8> %a1, i32 %mask) { 154*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_ucmp_b_256: 155*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 157*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x00] 158*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r8d ## encoding: [0xc5,0x7b,0x93,0xc0] 159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x01] 160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r9d ## encoding: [0xc5,0x7b,0x93,0xc8] 161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x02] 162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %r10d ## encoding: [0xc5,0x7b,0x93,0xd0] 163*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x03] 164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %esi ## encoding: [0xc5,0xfb,0x93,0xf0] 165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x04] 166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edi ## encoding: [0xc5,0xfb,0x93,0xf8] 167*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x05] 168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 169*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x06] 170*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 171*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordub %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x3e,0xc1,0x07] 172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %edx ## encoding: [0xc5,0xfb,0x93,0xd0] 173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7] 174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc0,0x01] 175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc1,0x02] 176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %edx, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x22,0xc2,0x03] 177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %r8d, %xmm1 ## encoding: [0x62,0xd1,0x7d,0x08,0x6e,0xc8] 178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $1, %r9d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xc9,0x01] 179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $2, %r10d, %xmm1, %xmm1 ## encoding: [0xc4,0xc3,0x71,0x22,0xca,0x02] 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrd $3, %esi, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x22,0xce,0x03] 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti32x4 $1, %xmm0, %ymm1, %ymm0 ## encoding: [0x62,0xf3,0x75,0x28,0x38,0xc0,0x01] 182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 183*9880d681SAndroid Build Coastguard Worker %res0 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 0, i32 %mask) 184*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i32> undef, i32 %res0, i32 0 185*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 1, i32 %mask) 186*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i32> %vec0, i32 %res1, i32 1 187*9880d681SAndroid Build Coastguard Worker %res2 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 2, i32 %mask) 188*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i32> %vec1, i32 %res2, i32 2 189*9880d681SAndroid Build Coastguard Worker %res3 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 3, i32 %mask) 190*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i32> %vec2, i32 %res3, i32 3 191*9880d681SAndroid Build Coastguard Worker %res4 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 4, i32 %mask) 192*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i32> %vec3, i32 %res4, i32 4 193*9880d681SAndroid Build Coastguard Worker %res5 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 5, i32 %mask) 194*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i32> %vec4, i32 %res5, i32 5 195*9880d681SAndroid Build Coastguard Worker %res6 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 6, i32 %mask) 196*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i32> %vec5, i32 %res6, i32 6 197*9880d681SAndroid Build Coastguard Worker %res7 = call i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> %a0, <32 x i8> %a1, i32 7, i32 %mask) 198*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i32> %vec6, i32 %res7, i32 7 199*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %vec7 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8>, <32 x i8>, i32, i32) nounwind readnone 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_cmp_w_256(<16 x i16> %a0, <16 x i16> %a1) { 205*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_cmp_w_256: 206*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 207*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xc1,0x00] 208*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltw %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xc9,0x01] 209*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmplew %ymm1, %ymm0, %k2 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xd1,0x02] 210*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordw %ymm1, %ymm0, %k3 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xd9,0x03] 211*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqw %ymm1, %ymm0, %k4 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xe1,0x04] 212*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltw %ymm1, %ymm0, %k5 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xe9,0x05] 213*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnlew %ymm1, %ymm0, %k6 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xf1,0x06] 214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordw %ymm1, %ymm0, %k7 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xf9,0x07] 215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 218*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 222*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 223*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 224*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 225*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 229*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 230*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 231*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 232*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 0, i16 -1) 233*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 234*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 1, i16 -1) 235*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 236*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 2, i16 -1) 237*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 238*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 3, i16 -1) 239*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 240*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 4, i16 -1) 241*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 242*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 5, i16 -1) 243*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 244*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 6, i16 -1) 245*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 246*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 7, i16 -1) 247*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 248*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 249*9880d681SAndroid Build Coastguard Worker} 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_cmp_w_256(<16 x i16> %a0, <16 x i16> %a1, i16 %mask) { 252*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_cmp_w_256: 253*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xc1,0x00] 256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltw %ymm1, %ymm0, %k2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xd1,0x01] 257*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmplew %ymm1, %ymm0, %k3 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xd9,0x02] 258*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordw %ymm1, %ymm0, %k4 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xe1,0x03] 259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqw %ymm1, %ymm0, %k5 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xe9,0x04] 260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltw %ymm1, %ymm0, %k6 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xf1,0x05] 261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnlew %ymm1, %ymm0, %k7 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xf9,0x06] 262*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordw %ymm1, %ymm0, %k1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3f,0xc9,0x07] 263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 276*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 277*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 278*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 280*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 0, i16 %mask) 281*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 282*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 1, i16 %mask) 283*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 284*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 2, i16 %mask) 285*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 286*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 3, i16 %mask) 287*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 288*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 4, i16 %mask) 289*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 290*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 5, i16 %mask) 291*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 292*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 6, i16 %mask) 293*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 294*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 7, i16 %mask) 295*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 296*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 297*9880d681SAndroid Build Coastguard Worker} 298*9880d681SAndroid Build Coastguard Worker 299*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.cmp.w.256(<16 x i16>, <16 x i16>, i32, i16) nounwind readnone 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_ucmp_w_256(<16 x i16> %a0, <16 x i16> %a1) { 302*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_ucmp_w_256: 303*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequw %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xc1,0x00] 305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltuw %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xc9,0x01] 306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleuw %ymm1, %ymm0, %k2 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xd1,0x02] 307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunorduw %ymm1, %ymm0, %k3 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xd9,0x03] 308*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequw %ymm1, %ymm0, %k4 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xe1,0x04] 309*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltuw %ymm1, %ymm0, %k5 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xe9,0x05] 310*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleuw %ymm1, %ymm0, %k6 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xf1,0x06] 311*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmporduw %ymm1, %ymm0, %k7 ## encoding: [0x62,0xf3,0xfd,0x28,0x3e,0xf9,0x07] 312*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 313*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 314*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 315*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 316*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 320*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 321*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 322*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 324*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 325*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 328*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 329*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 0, i16 -1) 330*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 331*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 1, i16 -1) 332*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 333*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 2, i16 -1) 334*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 335*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 3, i16 -1) 336*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 337*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 4, i16 -1) 338*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 339*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 5, i16 -1) 340*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 341*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 6, i16 -1) 342*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 343*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 7, i16 -1) 344*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 345*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 346*9880d681SAndroid Build Coastguard Worker} 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_ucmp_w_256(<16 x i16> %a0, <16 x i16> %a1, i16 %mask) { 349*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_ucmp_w_256: 350*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 351*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 352*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequw %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xc1,0x00] 353*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltuw %ymm1, %ymm0, %k2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xd1,0x01] 354*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleuw %ymm1, %ymm0, %k3 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xd9,0x02] 355*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunorduw %ymm1, %ymm0, %k4 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xe1,0x03] 356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequw %ymm1, %ymm0, %k5 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xe9,0x04] 357*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltuw %ymm1, %ymm0, %k6 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xf1,0x05] 358*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleuw %ymm1, %ymm0, %k7 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xf9,0x06] 359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmporduw %ymm1, %ymm0, %k1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x3e,0xc9,0x07] 360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 361*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 362*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 365*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 366*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 372*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 373*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 374*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 375*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 376*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 377*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 0, i16 %mask) 378*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 379*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 1, i16 %mask) 380*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 381*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 2, i16 %mask) 382*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 383*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 3, i16 %mask) 384*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 385*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 4, i16 %mask) 386*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 387*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 5, i16 %mask) 388*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 389*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 6, i16 %mask) 390*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 391*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> %a0, <16 x i16> %a1, i32 7, i16 %mask) 392*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 393*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 394*9880d681SAndroid Build Coastguard Worker} 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16>, <16 x i16>, i32, i16) nounwind readnone 397*9880d681SAndroid Build Coastguard Worker 398*9880d681SAndroid Build Coastguard Worker; 128-bit 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdefine i16 @test_pcmpeq_b_128(<16 x i8> %a, <16 x i8> %b) { 401*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_b_128: 402*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x74,0xc1] 404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 407*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.mask.pcmpeq.b.128(<16 x i8> %a, <16 x i8> %b, i16 -1) 408*9880d681SAndroid Build Coastguard Worker ret i16 %res 409*9880d681SAndroid Build Coastguard Worker} 410*9880d681SAndroid Build Coastguard Worker 411*9880d681SAndroid Build Coastguard Workerdefine i16 @test_mask_pcmpeq_b_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 412*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_b_128: 413*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 414*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 415*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x74,0xc1] 416*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 417*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 418*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 419*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.mask.pcmpeq.b.128(<16 x i8> %a, <16 x i8> %b, i16 %mask) 420*9880d681SAndroid Build Coastguard Worker ret i16 %res 421*9880d681SAndroid Build Coastguard Worker} 422*9880d681SAndroid Build Coastguard Worker 423*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.pcmpeq.b.128(<16 x i8>, <16 x i8>, i16) 424*9880d681SAndroid Build Coastguard Worker 425*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpeq_w_128(<8 x i16> %a, <8 x i16> %b) { 426*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpeq_w_128: 427*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 428*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x75,0xc1] 429*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 430*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 432*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.w.128(<8 x i16> %a, <8 x i16> %b, i8 -1) 433*9880d681SAndroid Build Coastguard Worker ret i8 %res 434*9880d681SAndroid Build Coastguard Worker} 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpeq_w_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 437*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpeq_w_128: 438*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 439*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 440*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x75,0xc1] 441*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 442*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 443*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 444*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpeq.w.128(<8 x i16> %a, <8 x i16> %b, i8 %mask) 445*9880d681SAndroid Build Coastguard Worker ret i8 %res 446*9880d681SAndroid Build Coastguard Worker} 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpeq.w.128(<8 x i16>, <8 x i16>, i8) 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Workerdefine i16 @test_pcmpgt_b_128(<16 x i8> %a, <16 x i8> %b) { 451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_b_128: 452*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x64,0xc1] 454*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 455*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 456*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 457*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.mask.pcmpgt.b.128(<16 x i8> %a, <16 x i8> %b, i16 -1) 458*9880d681SAndroid Build Coastguard Worker ret i16 %res 459*9880d681SAndroid Build Coastguard Worker} 460*9880d681SAndroid Build Coastguard Worker 461*9880d681SAndroid Build Coastguard Workerdefine i16 @test_mask_pcmpgt_b_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 462*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_b_128: 463*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 464*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 465*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x64,0xc1] 466*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 469*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.mask.pcmpgt.b.128(<16 x i8> %a, <16 x i8> %b, i16 %mask) 470*9880d681SAndroid Build Coastguard Worker ret i16 %res 471*9880d681SAndroid Build Coastguard Worker} 472*9880d681SAndroid Build Coastguard Worker 473*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.pcmpgt.b.128(<16 x i8>, <16 x i8>, i16) 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Workerdefine i8 @test_pcmpgt_w_128(<8 x i16> %a, <8 x i16> %b) { 476*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_pcmpgt_w_128: 477*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 478*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf1,0x7d,0x08,0x65,0xc1] 479*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 480*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 481*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 482*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.w.128(<8 x i16> %a, <8 x i16> %b, i8 -1) 483*9880d681SAndroid Build Coastguard Worker ret i8 %res 484*9880d681SAndroid Build Coastguard Worker} 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerdefine i8 @test_mask_pcmpgt_w_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 487*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_pcmpgt_w_128: 488*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpgtw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x65,0xc1] 491*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 492*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 493*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 494*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.pcmpgt.w.128(<8 x i16> %a, <8 x i16> %b, i8 %mask) 495*9880d681SAndroid Build Coastguard Worker ret i8 %res 496*9880d681SAndroid Build Coastguard Worker} 497*9880d681SAndroid Build Coastguard Worker 498*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.pcmpgt.w.128(<8 x i16>, <8 x i16>, i8) 499*9880d681SAndroid Build Coastguard Worker 500*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_cmp_b_128(<16 x i8> %a0, <16 x i8> %a1) { 501*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_cmp_b_128: 502*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 503*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xc1,0x00] 504*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltb %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xc9,0x01] 505*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleb %xmm1, %xmm0, %k2 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xd1,0x02] 506*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordb %xmm1, %xmm0, %k3 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xd9,0x03] 507*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqb %xmm1, %xmm0, %k4 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xe1,0x04] 508*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltb %xmm1, %xmm0, %k5 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xe9,0x05] 509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleb %xmm1, %xmm0, %k6 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xf1,0x06] 510*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordb %xmm1, %xmm0, %k7 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xf9,0x07] 511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 514*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 515*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 516*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 517*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 518*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 519*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 520*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 521*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 522*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 523*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 524*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 527*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 528*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 0, i16 -1) 529*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 530*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 1, i16 -1) 531*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 532*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 2, i16 -1) 533*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 534*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 3, i16 -1) 535*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 536*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 4, i16 -1) 537*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 538*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 5, i16 -1) 539*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 540*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 6, i16 -1) 541*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 542*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 7, i16 -1) 543*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 544*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 545*9880d681SAndroid Build Coastguard Worker} 546*9880d681SAndroid Build Coastguard Worker 547*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_cmp_b_128(<16 x i8> %a0, <16 x i8> %a1, i16 %mask) { 548*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_cmp_b_128: 549*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 550*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 551*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xc1,0x00] 552*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltb %xmm1, %xmm0, %k2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xd1,0x01] 553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleb %xmm1, %xmm0, %k3 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xd9,0x02] 554*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordb %xmm1, %xmm0, %k4 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xe1,0x03] 555*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqb %xmm1, %xmm0, %k5 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xe9,0x04] 556*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltb %xmm1, %xmm0, %k6 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xf1,0x05] 557*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleb %xmm1, %xmm0, %k7 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xf9,0x06] 558*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordb %xmm1, %xmm0, %k1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3f,0xc9,0x07] 559*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 560*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 561*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 562*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 563*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 567*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 568*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 569*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 570*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 571*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 572*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 573*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 574*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 575*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 576*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 0, i16 %mask) 577*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 578*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 1, i16 %mask) 579*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 580*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 2, i16 %mask) 581*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 582*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 3, i16 %mask) 583*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 584*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 4, i16 %mask) 585*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 586*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 5, i16 %mask) 587*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 588*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 6, i16 %mask) 589*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 590*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 7, i16 %mask) 591*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 592*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 593*9880d681SAndroid Build Coastguard Worker} 594*9880d681SAndroid Build Coastguard Worker 595*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.cmp.b.128(<16 x i8>, <16 x i8>, i32, i16) nounwind readnone 596*9880d681SAndroid Build Coastguard Worker 597*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_ucmp_b_128(<16 x i8> %a0, <16 x i8> %a1) { 598*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_ucmp_b_128: 599*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 600*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xc1,0x00] 601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltub %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xc9,0x01] 602*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleub %xmm1, %xmm0, %k2 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xd1,0x02] 603*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordub %xmm1, %xmm0, %k3 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xd9,0x03] 604*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequb %xmm1, %xmm0, %k4 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xe1,0x04] 605*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltub %xmm1, %xmm0, %k5 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xe9,0x05] 606*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleub %xmm1, %xmm0, %k6 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xf1,0x06] 607*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordub %xmm1, %xmm0, %k7 ## encoding: [0x62,0xf3,0x7d,0x08,0x3e,0xf9,0x07] 608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 610*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 611*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 612*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 613*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 614*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 615*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 618*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 619*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 620*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 621*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 622*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 623*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 624*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 625*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 0, i16 -1) 626*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 627*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 1, i16 -1) 628*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 629*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 2, i16 -1) 630*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 631*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 3, i16 -1) 632*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 633*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 4, i16 -1) 634*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 635*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 5, i16 -1) 636*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 637*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 6, i16 -1) 638*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 639*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 7, i16 -1) 640*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 641*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 642*9880d681SAndroid Build Coastguard Worker} 643*9880d681SAndroid Build Coastguard Worker 644*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_ucmp_b_128(<16 x i8> %a0, <16 x i8> %a1, i16 %mask) { 645*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_ucmp_b_128: 646*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 647*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xc1,0x00] 649*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltub %xmm1, %xmm0, %k2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xd1,0x01] 650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleub %xmm1, %xmm0, %k3 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xd9,0x02] 651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordub %xmm1, %xmm0, %k4 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xe1,0x03] 652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequb %xmm1, %xmm0, %k5 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xe9,0x04] 653*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltub %xmm1, %xmm0, %k6 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xf1,0x05] 654*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleub %xmm1, %xmm0, %k7 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xf9,0x06] 655*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordub %xmm1, %xmm0, %k1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x3e,0xc9,0x07] 656*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 657*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 658*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovd %ecx, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc1] 659*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x01] 660*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 661*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x02] 662*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 663*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x03] 664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x04] 666*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 667*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x05] 668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 669*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x06] 670*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 671*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xc4,0xc0,0x07] 672*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 673*9880d681SAndroid Build Coastguard Worker %res0 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 0, i16 %mask) 674*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i16> undef, i16 %res0, i32 0 675*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 1, i16 %mask) 676*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i16> %vec0, i16 %res1, i32 1 677*9880d681SAndroid Build Coastguard Worker %res2 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 2, i16 %mask) 678*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i16> %vec1, i16 %res2, i32 2 679*9880d681SAndroid Build Coastguard Worker %res3 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 3, i16 %mask) 680*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i16> %vec2, i16 %res3, i32 3 681*9880d681SAndroid Build Coastguard Worker %res4 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 4, i16 %mask) 682*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i16> %vec3, i16 %res4, i32 4 683*9880d681SAndroid Build Coastguard Worker %res5 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 5, i16 %mask) 684*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i16> %vec4, i16 %res5, i32 5 685*9880d681SAndroid Build Coastguard Worker %res6 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 6, i16 %mask) 686*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i16> %vec5, i16 %res6, i32 6 687*9880d681SAndroid Build Coastguard Worker %res7 = call i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> %a0, <16 x i8> %a1, i32 7, i16 %mask) 688*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i16> %vec6, i16 %res7, i32 7 689*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vec7 690*9880d681SAndroid Build Coastguard Worker} 691*9880d681SAndroid Build Coastguard Worker 692*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8>, <16 x i8>, i32, i16) nounwind readnone 693*9880d681SAndroid Build Coastguard Worker 694*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_cmp_w_128(<8 x i16> %a0, <8 x i16> %a1) { 695*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_cmp_w_128: 696*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 697*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xc1,0x00] 698*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltw %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xc9,0x01] 699*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmplew %xmm1, %xmm0, %k2 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xd1,0x02] 700*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordw %xmm1, %xmm0, %k3 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xd9,0x03] 701*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqw %xmm1, %xmm0, %k4 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xe1,0x04] 702*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltw %xmm1, %xmm0, %k5 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xe9,0x05] 703*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnlew %xmm1, %xmm0, %k6 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xf1,0x06] 704*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordw %xmm1, %xmm0, %k7 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xf9,0x07] 705*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 706*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x00] 707*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 708*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x02] 709*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 710*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x04] 711*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 712*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x06] 713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 714*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x08] 715*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 716*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0a] 717*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 718*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0c] 719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0e] 721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 722*9880d681SAndroid Build Coastguard Worker %res0 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 0, i8 -1) 723*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i8> undef, i8 %res0, i32 0 724*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 1, i8 -1) 725*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i8> %vec0, i8 %res1, i32 1 726*9880d681SAndroid Build Coastguard Worker %res2 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 2, i8 -1) 727*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i8> %vec1, i8 %res2, i32 2 728*9880d681SAndroid Build Coastguard Worker %res3 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 3, i8 -1) 729*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i8> %vec2, i8 %res3, i32 3 730*9880d681SAndroid Build Coastguard Worker %res4 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 4, i8 -1) 731*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i8> %vec3, i8 %res4, i32 4 732*9880d681SAndroid Build Coastguard Worker %res5 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 5, i8 -1) 733*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i8> %vec4, i8 %res5, i32 5 734*9880d681SAndroid Build Coastguard Worker %res6 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 6, i8 -1) 735*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i8> %vec5, i8 %res6, i32 6 736*9880d681SAndroid Build Coastguard Worker %res7 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 7, i8 -1) 737*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i8> %vec6, i8 %res7, i32 7 738*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vec7 739*9880d681SAndroid Build Coastguard Worker} 740*9880d681SAndroid Build Coastguard Worker 741*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_mask_cmp_w_128(<8 x i16> %a0, <8 x i16> %a1, i8 %mask) { 742*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_cmp_w_128: 743*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 744*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpeqw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xc1,0x00] 746*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltw %xmm1, %xmm0, %k2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xd1,0x01] 747*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmplew %xmm1, %xmm0, %k3 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xd9,0x02] 748*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunordw %xmm1, %xmm0, %k4 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xe1,0x03] 749*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpneqw %xmm1, %xmm0, %k5 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xe9,0x04] 750*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltw %xmm1, %xmm0, %k6 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xf1,0x05] 751*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnlew %xmm1, %xmm0, %k7 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xf9,0x06] 752*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpordw %xmm1, %xmm0, %k1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3f,0xc9,0x07] 753*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 754*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x00] 755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 756*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x02] 757*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 758*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x04] 759*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x06] 761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x08] 763*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 764*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0a] 765*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 766*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0c] 767*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 768*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0e] 769*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 770*9880d681SAndroid Build Coastguard Worker %res0 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 0, i8 %mask) 771*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i8> undef, i8 %res0, i32 0 772*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 1, i8 %mask) 773*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i8> %vec0, i8 %res1, i32 1 774*9880d681SAndroid Build Coastguard Worker %res2 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 2, i8 %mask) 775*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i8> %vec1, i8 %res2, i32 2 776*9880d681SAndroid Build Coastguard Worker %res3 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 3, i8 %mask) 777*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i8> %vec2, i8 %res3, i32 3 778*9880d681SAndroid Build Coastguard Worker %res4 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 4, i8 %mask) 779*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i8> %vec3, i8 %res4, i32 4 780*9880d681SAndroid Build Coastguard Worker %res5 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 5, i8 %mask) 781*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i8> %vec4, i8 %res5, i32 5 782*9880d681SAndroid Build Coastguard Worker %res6 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 6, i8 %mask) 783*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i8> %vec5, i8 %res6, i32 6 784*9880d681SAndroid Build Coastguard Worker %res7 = call i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 7, i8 %mask) 785*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i8> %vec6, i8 %res7, i32 7 786*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vec7 787*9880d681SAndroid Build Coastguard Worker} 788*9880d681SAndroid Build Coastguard Worker 789*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.cmp.w.128(<8 x i16>, <8 x i16>, i32, i8) nounwind readnone 790*9880d681SAndroid Build Coastguard Worker 791*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_ucmp_w_128(<8 x i16> %a0, <8 x i16> %a1) { 792*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_ucmp_w_128: 793*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 794*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xc1,0x00] 795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltuw %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xc9,0x01] 796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleuw %xmm1, %xmm0, %k2 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xd1,0x02] 797*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunorduw %xmm1, %xmm0, %k3 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xd9,0x03] 798*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequw %xmm1, %xmm0, %k4 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xe1,0x04] 799*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltuw %xmm1, %xmm0, %k5 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xe9,0x05] 800*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleuw %xmm1, %xmm0, %k6 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xf1,0x06] 801*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmporduw %xmm1, %xmm0, %k7 ## encoding: [0x62,0xf3,0xfd,0x08,0x3e,0xf9,0x07] 802*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 803*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x00] 804*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 805*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x02] 806*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 807*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x04] 808*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 809*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x06] 810*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 811*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x08] 812*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 813*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0a] 814*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 815*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0c] 816*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 817*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0e] 818*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 819*9880d681SAndroid Build Coastguard Worker %res0 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 0, i8 -1) 820*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i8> undef, i8 %res0, i32 0 821*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 1, i8 -1) 822*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i8> %vec0, i8 %res1, i32 1 823*9880d681SAndroid Build Coastguard Worker %res2 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 2, i8 -1) 824*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i8> %vec1, i8 %res2, i32 2 825*9880d681SAndroid Build Coastguard Worker %res3 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 3, i8 -1) 826*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i8> %vec2, i8 %res3, i32 3 827*9880d681SAndroid Build Coastguard Worker %res4 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 4, i8 -1) 828*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i8> %vec3, i8 %res4, i32 4 829*9880d681SAndroid Build Coastguard Worker %res5 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 5, i8 -1) 830*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i8> %vec4, i8 %res5, i32 5 831*9880d681SAndroid Build Coastguard Worker %res6 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 6, i8 -1) 832*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i8> %vec5, i8 %res6, i32 6 833*9880d681SAndroid Build Coastguard Worker %res7 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 7, i8 -1) 834*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i8> %vec6, i8 %res7, i32 7 835*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vec7 836*9880d681SAndroid Build Coastguard Worker} 837*9880d681SAndroid Build Coastguard Worker 838*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_mask_ucmp_w_128(<8 x i16> %a0, <8 x i16> %a1, i8 %mask) { 839*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_ucmp_w_128: 840*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 841*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 842*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpequw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xc1,0x00] 843*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpltuw %xmm1, %xmm0, %k2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xd1,0x01] 844*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpleuw %xmm1, %xmm0, %k3 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xd9,0x02] 845*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpunorduw %xmm1, %xmm0, %k4 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xe1,0x03] 846*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnequw %xmm1, %xmm0, %k5 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xe9,0x04] 847*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnltuw %xmm1, %xmm0, %k6 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xf1,0x05] 848*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmpnleuw %xmm1, %xmm0, %k7 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xf9,0x06] 849*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpcmporduw %xmm1, %xmm0, %k1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x3e,0xc9,0x07] 850*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 851*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x00] 852*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k2, %eax ## encoding: [0xc5,0xf8,0x93,0xc2] 853*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x02] 854*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k3, %eax ## encoding: [0xc5,0xf8,0x93,0xc3] 855*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x04] 856*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k4, %eax ## encoding: [0xc5,0xf8,0x93,0xc4] 857*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x06] 858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k5, %eax ## encoding: [0xc5,0xf8,0x93,0xc5] 859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x08] 860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k6, %eax ## encoding: [0xc5,0xf8,0x93,0xc6] 861*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0a] 862*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k7, %eax ## encoding: [0xc5,0xf8,0x93,0xc7] 863*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0c] 864*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k1, %eax ## encoding: [0xc5,0xf8,0x93,0xc1] 865*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x20,0xc0,0x0e] 866*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 867*9880d681SAndroid Build Coastguard Worker %res0 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 0, i8 %mask) 868*9880d681SAndroid Build Coastguard Worker %vec0 = insertelement <8 x i8> undef, i8 %res0, i32 0 869*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 1, i8 %mask) 870*9880d681SAndroid Build Coastguard Worker %vec1 = insertelement <8 x i8> %vec0, i8 %res1, i32 1 871*9880d681SAndroid Build Coastguard Worker %res2 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 2, i8 %mask) 872*9880d681SAndroid Build Coastguard Worker %vec2 = insertelement <8 x i8> %vec1, i8 %res2, i32 2 873*9880d681SAndroid Build Coastguard Worker %res3 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 3, i8 %mask) 874*9880d681SAndroid Build Coastguard Worker %vec3 = insertelement <8 x i8> %vec2, i8 %res3, i32 3 875*9880d681SAndroid Build Coastguard Worker %res4 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 4, i8 %mask) 876*9880d681SAndroid Build Coastguard Worker %vec4 = insertelement <8 x i8> %vec3, i8 %res4, i32 4 877*9880d681SAndroid Build Coastguard Worker %res5 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 5, i8 %mask) 878*9880d681SAndroid Build Coastguard Worker %vec5 = insertelement <8 x i8> %vec4, i8 %res5, i32 5 879*9880d681SAndroid Build Coastguard Worker %res6 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 6, i8 %mask) 880*9880d681SAndroid Build Coastguard Worker %vec6 = insertelement <8 x i8> %vec5, i8 %res6, i32 6 881*9880d681SAndroid Build Coastguard Worker %res7 = call i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> %a0, <8 x i16> %a1, i32 7, i8 %mask) 882*9880d681SAndroid Build Coastguard Worker %vec7 = insertelement <8 x i8> %vec6, i8 %res7, i32 7 883*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vec7 884*9880d681SAndroid Build Coastguard Worker} 885*9880d681SAndroid Build Coastguard Worker 886*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16>, <8 x i16>, i32, i8) nounwind readnone 887*9880d681SAndroid Build Coastguard Worker 888*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.vfmadd.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) nounwind readnone 889*9880d681SAndroid Build Coastguard Worker 890*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_vfmadd256_ps(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) { 891*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd256_ps: 892*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 893*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 894*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xa8,0xc2] 895*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 896*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfmadd.ps.256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) nounwind 897*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 898*9880d681SAndroid Build Coastguard Worker} 899*9880d681SAndroid Build Coastguard Worker 900*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) nounwind readnone 901*9880d681SAndroid Build Coastguard Worker 902*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) { 903*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps: 904*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 905*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 906*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa8,0xc2] 907*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 908*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 909*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 910*9880d681SAndroid Build Coastguard Worker} 911*9880d681SAndroid Build Coastguard Worker 912*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 913*9880d681SAndroid Build Coastguard Worker 914*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_fmadd256_pd(<4 x double> %a, <4 x double> %b, <4 x double> %c, i8 %mask) { 915*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_fmadd256_pd: 916*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 917*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 918*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa8,0xc2] 919*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 920*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %a, <4 x double> %b, <4 x double> %c, i8 %mask) 921*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 922*9880d681SAndroid Build Coastguard Worker} 923*9880d681SAndroid Build Coastguard Worker 924*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 925*9880d681SAndroid Build Coastguard Worker 926*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_fmadd128_pd(<2 x double> %a, <2 x double> %b, <2 x double> %c, i8 %mask) { 927*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_fmadd128_pd: 928*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 929*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 930*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa8,0xc2] 931*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 932*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %a, <2 x double> %b, <2 x double> %c, i8 %mask) 933*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 934*9880d681SAndroid Build Coastguard Worker} 935*9880d681SAndroid Build Coastguard Worker 936*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vfmadd_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 937*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_pd_128: 938*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 939*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 940*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 941*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa8,0xda] 942*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa8,0xc2] 943*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 944*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 945*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 946*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 947*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 948*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 949*9880d681SAndroid Build Coastguard Worker} 950*9880d681SAndroid Build Coastguard Worker 951*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask3.vfmadd.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 952*9880d681SAndroid Build Coastguard Worker 953*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask3_vfmadd_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 954*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_pd_128: 955*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 956*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 957*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 958*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231pd %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0xb8,0xd9] 959*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa8,0xc2] 960*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 961*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 962*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask3.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 963*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask3.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 964*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 965*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 966*9880d681SAndroid Build Coastguard Worker} 967*9880d681SAndroid Build Coastguard Worker 968*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.maskz.vfmadd.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 969*9880d681SAndroid Build Coastguard Worker 970*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_maskz_vfmadd_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 971*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_pd_128: 972*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 973*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 974*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 975*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0x89,0xa8,0xda] 976*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa8,0xc2] 977*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 978*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 979*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.maskz.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 980*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.maskz.vfmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 981*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 982*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 983*9880d681SAndroid Build Coastguard Worker} 984*9880d681SAndroid Build Coastguard Worker 985*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_vfmadd_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 986*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_pd_256: 987*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 988*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 989*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 990*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa8,0xda] 991*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa8,0xc2] 992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 994*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 995*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 996*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 997*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 998*9880d681SAndroid Build Coastguard Worker} 999*9880d681SAndroid Build Coastguard Worker 1000*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask3.vfmadd.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1001*9880d681SAndroid Build Coastguard Worker 1002*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask3_vfmadd_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1003*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_pd_256: 1004*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1005*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1006*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1007*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231pd %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0xb8,0xd9] 1008*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa8,0xc2] 1009*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1011*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask3.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1012*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask3.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1013*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1014*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1015*9880d681SAndroid Build Coastguard Worker} 1016*9880d681SAndroid Build Coastguard Worker 1017*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.maskz.vfmadd.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1018*9880d681SAndroid Build Coastguard Worker 1019*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_maskz_vfmadd_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1020*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_pd_256: 1021*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1023*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1024*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0xa9,0xa8,0xda] 1025*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa8,0xc2] 1026*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1027*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1028*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.maskz.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1029*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.maskz.vfmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1030*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1031*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1032*9880d681SAndroid Build Coastguard Worker} 1033*9880d681SAndroid Build Coastguard Worker 1034*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_vfmadd_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1035*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_ps_128: 1036*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1037*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1038*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1039*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa8,0xda] 1040*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0xc2] 1041*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1042*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1043*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1044*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1045*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1046*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1047*9880d681SAndroid Build Coastguard Worker} 1048*9880d681SAndroid Build Coastguard Worker 1049*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask3.vfmadd.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1050*9880d681SAndroid Build Coastguard Worker 1051*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask3_vfmadd_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1052*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_ps_128: 1053*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1054*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1055*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1056*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231ps %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0xb8,0xd9] 1057*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0xc2] 1058*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1059*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1060*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask3.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1061*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask3.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1062*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1063*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1064*9880d681SAndroid Build Coastguard Worker} 1065*9880d681SAndroid Build Coastguard Worker 1066*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.maskz.vfmadd.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1067*9880d681SAndroid Build Coastguard Worker 1068*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_maskz_vfmadd_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1069*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_ps_128: 1070*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1071*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1072*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1073*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0x89,0xa8,0xda] 1074*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0xc2] 1075*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1076*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1077*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.maskz.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1078*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.maskz.vfmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1079*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1080*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1081*9880d681SAndroid Build Coastguard Worker} 1082*9880d681SAndroid Build Coastguard Worker 1083*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_vfmadd_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1084*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_ps_256: 1085*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1086*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1087*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1088*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xa8,0xda] 1089*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa8,0xc2] 1090*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1091*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1092*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1093*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1094*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1095*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1096*9880d681SAndroid Build Coastguard Worker} 1097*9880d681SAndroid Build Coastguard Worker 1098*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask3.vfmadd.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1099*9880d681SAndroid Build Coastguard Worker 1100*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask3_vfmadd_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1101*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_ps_256: 1102*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1103*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1104*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231ps %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0xb8,0xd9] 1106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa8,0xc2] 1107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1109*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask3.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1110*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask3.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1111*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1112*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1113*9880d681SAndroid Build Coastguard Worker} 1114*9880d681SAndroid Build Coastguard Worker 1115*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.maskz.vfmadd.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1116*9880d681SAndroid Build Coastguard Worker 1117*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_maskz_vfmadd_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1118*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_ps_256: 1119*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0xa9,0xa8,0xda] 1123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa8,0xc2] 1124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1126*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.maskz.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1127*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.maskz.vfmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1128*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1129*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1130*9880d681SAndroid Build Coastguard Worker} 1131*9880d681SAndroid Build Coastguard Worker 1132*9880d681SAndroid Build Coastguard Worker 1133*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask3.vfmsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1134*9880d681SAndroid Build Coastguard Worker 1135*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask3_vfmsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1136*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_pd_128: 1137*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1138*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231pd %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0xba,0xd9] 1141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xaa,0xc2] 1142*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1144*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask3.vfmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1145*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask3.vfmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1146*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1147*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1148*9880d681SAndroid Build Coastguard Worker} 1149*9880d681SAndroid Build Coastguard Worker 1150*9880d681SAndroid Build Coastguard Worker 1151*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask3.vfmsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1152*9880d681SAndroid Build Coastguard Worker 1153*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask3_vfmsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1154*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_pd_256: 1155*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1157*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1158*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231pd %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0xba,0xd9] 1159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xaa,0xc2] 1160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1162*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask3.vfmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1163*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask3.vfmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1164*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1165*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1166*9880d681SAndroid Build Coastguard Worker} 1167*9880d681SAndroid Build Coastguard Worker 1168*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask3.vfmsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1169*9880d681SAndroid Build Coastguard Worker 1170*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask3_vfmsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1171*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_ps_128: 1172*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231ps %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0xba,0xd9] 1176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xaa,0xc2] 1177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1179*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask3.vfmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1180*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask3.vfmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1181*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1182*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1183*9880d681SAndroid Build Coastguard Worker} 1184*9880d681SAndroid Build Coastguard Worker 1185*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask3.vfmsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1186*9880d681SAndroid Build Coastguard Worker 1187*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask3_vfmsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1188*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_ps_256: 1189*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1190*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1191*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231ps %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0xba,0xd9] 1193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xaa,0xc2] 1194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1196*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask3.vfmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1197*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask3.vfmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1198*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1199*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1200*9880d681SAndroid Build Coastguard Worker} 1201*9880d681SAndroid Build Coastguard Worker 1202*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.vfnmadd.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) nounwind readnone 1203*9880d681SAndroid Build Coastguard Worker 1204*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_vfnmadd256_ps(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) { 1205*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd256_ps: 1206*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1207*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1208*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xac,0xc2] 1209*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1210*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfnmadd.ps.256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) nounwind 1211*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1212*9880d681SAndroid Build Coastguard Worker} 1213*9880d681SAndroid Build Coastguard Worker 1214*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.vfnmadd.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) nounwind readnone 1215*9880d681SAndroid Build Coastguard Worker 1216*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfnmadd128_ps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) { 1217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd128_ps: 1218*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xac,0xc2] 1221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1222*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfnmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 1223*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1224*9880d681SAndroid Build Coastguard Worker} 1225*9880d681SAndroid Build Coastguard Worker 1226*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.vfnmadd.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) nounwind readnone 1227*9880d681SAndroid Build Coastguard Worker 1228*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfnmadd256_pd(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) { 1229*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd256_pd: 1230*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1231*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1232*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xac,0xc2] 1233*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1234*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfnmadd.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) nounwind 1235*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1236*9880d681SAndroid Build Coastguard Worker} 1237*9880d681SAndroid Build Coastguard Worker 1238*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vfnmadd.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) nounwind readnone 1239*9880d681SAndroid Build Coastguard Worker 1240*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfnmadd128_pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) { 1241*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd128_pd: 1242*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1243*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1244*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xac,0xc2] 1245*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1246*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfnmadd.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) nounwind 1247*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1248*9880d681SAndroid Build Coastguard Worker} 1249*9880d681SAndroid Build Coastguard Worker 1250*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.vfnmsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) nounwind readnone 1251*9880d681SAndroid Build Coastguard Worker 1252*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_vfnmsub256_ps(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) { 1253*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub256_ps: 1254*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xae,0xc2] 1257*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1258*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfnmsub.ps.256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, i8 %mask) nounwind 1259*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1260*9880d681SAndroid Build Coastguard Worker} 1261*9880d681SAndroid Build Coastguard Worker 1262*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.vfnmsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) nounwind readnone 1263*9880d681SAndroid Build Coastguard Worker 1264*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfnmsub128_ps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) { 1265*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub128_ps: 1266*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xae,0xc2] 1269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1270*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfnmsub.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 1271*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1272*9880d681SAndroid Build Coastguard Worker} 1273*9880d681SAndroid Build Coastguard Worker 1274*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.vfnmsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) nounwind readnone 1275*9880d681SAndroid Build Coastguard Worker 1276*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfnmsub256_pd(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) { 1277*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub256_pd: 1278*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1280*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xae,0xc2] 1281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1282*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfnmsub.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) nounwind 1283*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1284*9880d681SAndroid Build Coastguard Worker} 1285*9880d681SAndroid Build Coastguard Worker 1286*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vfnmsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) nounwind readnone 1287*9880d681SAndroid Build Coastguard Worker 1288*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfnmsub128_pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) { 1289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub128_pd: 1290*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xae,0xc2] 1293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1294*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfnmsub.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) nounwind 1295*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1296*9880d681SAndroid Build Coastguard Worker} 1297*9880d681SAndroid Build Coastguard Worker 1298*9880d681SAndroid Build Coastguard Worker 1299*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vfnmsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1300*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_pd_128: 1301*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1302*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xae,0xda] 1305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xae,0xc2] 1306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1308*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfnmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1309*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vfnmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1310*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1311*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1312*9880d681SAndroid Build Coastguard Worker} 1313*9880d681SAndroid Build Coastguard Worker 1314*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1315*9880d681SAndroid Build Coastguard Worker 1316*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask3_vfnmsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1317*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_pd_128: 1318*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1320*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1321*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231pd %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0xbe,0xd9] 1322*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xae,0xc2] 1323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1324*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1325*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1326*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1327*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1328*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1329*9880d681SAndroid Build Coastguard Worker} 1330*9880d681SAndroid Build Coastguard Worker 1331*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_vfnmsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1332*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_pd_256: 1333*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1334*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1335*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1336*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xae,0xda] 1337*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xae,0xc2] 1338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1340*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfnmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1341*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.vfnmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1342*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1343*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1344*9880d681SAndroid Build Coastguard Worker} 1345*9880d681SAndroid Build Coastguard Worker 1346*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1347*9880d681SAndroid Build Coastguard Worker 1348*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask3_vfnmsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1349*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_pd_256: 1350*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1351*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1352*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1353*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231pd %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0xbe,0xd9] 1354*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xae,0xc2] 1355*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1357*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1358*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1359*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1360*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1361*9880d681SAndroid Build Coastguard Worker} 1362*9880d681SAndroid Build Coastguard Worker 1363*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_vfnmsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1364*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_ps_128: 1365*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1366*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xae,0xda] 1369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xae,0xc2] 1370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1372*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfnmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1373*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.vfnmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1374*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1375*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1376*9880d681SAndroid Build Coastguard Worker} 1377*9880d681SAndroid Build Coastguard Worker 1378*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1379*9880d681SAndroid Build Coastguard Worker 1380*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask3_vfnmsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1381*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_ps_128: 1382*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1383*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1384*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1385*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231ps %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0xbe,0xd9] 1386*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xae,0xc2] 1387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1389*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1390*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1391*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1392*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1393*9880d681SAndroid Build Coastguard Worker} 1394*9880d681SAndroid Build Coastguard Worker 1395*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_vfnmsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1396*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_ps_256: 1397*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1398*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1399*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1400*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xae,0xda] 1401*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xae,0xc2] 1402*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1404*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfnmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1405*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.vfnmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1406*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1407*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1408*9880d681SAndroid Build Coastguard Worker} 1409*9880d681SAndroid Build Coastguard Worker 1410*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1411*9880d681SAndroid Build Coastguard Worker 1412*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask3_vfnmsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1413*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_ps_256: 1414*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1415*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1416*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1417*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231ps %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0xbe,0xd9] 1418*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xae,0xc2] 1419*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1420*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1421*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1422*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1423*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1424*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1425*9880d681SAndroid Build Coastguard Worker} 1426*9880d681SAndroid Build Coastguard Worker 1427*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vfnmadd_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1428*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_pd_128: 1429*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1430*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xac,0xda] 1433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xac,0xc2] 1434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1435*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1436*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfnmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1437*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vfnmadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1438*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1439*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1440*9880d681SAndroid Build Coastguard Worker} 1441*9880d681SAndroid Build Coastguard Worker 1442*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_vfnmadd_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1443*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_pd_256: 1444*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1445*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1446*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1447*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xac,0xda] 1448*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xac,0xc2] 1449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1450*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1451*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfnmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1452*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.vfnmadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1453*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1454*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1455*9880d681SAndroid Build Coastguard Worker} 1456*9880d681SAndroid Build Coastguard Worker 1457*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_vfnmadd_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_ps_128: 1459*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1460*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1461*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1462*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xac,0xda] 1463*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xac,0xc2] 1464*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1465*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1466*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfnmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1467*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.vfnmadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1468*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1469*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1470*9880d681SAndroid Build Coastguard Worker} 1471*9880d681SAndroid Build Coastguard Worker 1472*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_vfnmadd_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1473*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_ps_256: 1474*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1475*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1476*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1477*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xac,0xda] 1478*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xac,0xc2] 1479*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1480*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1481*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfnmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1482*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.vfnmadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1483*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1484*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1485*9880d681SAndroid Build Coastguard Worker} 1486*9880d681SAndroid Build Coastguard Worker 1487*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) nounwind readnone 1488*9880d681SAndroid Build Coastguard Worker 1489*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_fmaddsub256_ps(<8 x float> %a, <8 x float> %b, <8 x float> %c, i8 %mask) { 1490*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_fmaddsub256_ps: 1491*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1492*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1493*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xa6,0xc2] 1494*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1495*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %c, i8 %mask) 1496*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1497*9880d681SAndroid Build Coastguard Worker} 1498*9880d681SAndroid Build Coastguard Worker 1499*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) nounwind readnone 1500*9880d681SAndroid Build Coastguard Worker 1501*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_fmaddsub128_ps(<4 x float> %a, <4 x float> %b, <4 x float> %c, i8 %mask) { 1502*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_fmaddsub128_ps: 1503*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1504*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1505*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa6,0xc2] 1506*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1507*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %c, i8 %mask) 1508*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1509*9880d681SAndroid Build Coastguard Worker} 1510*9880d681SAndroid Build Coastguard Worker 1511*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) nounwind readnone 1512*9880d681SAndroid Build Coastguard Worker 1513*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfmaddsub256_pd(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) { 1514*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmaddsub256_pd: 1515*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1516*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1517*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa6,0xc2] 1518*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1519*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) nounwind 1520*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1521*9880d681SAndroid Build Coastguard Worker} 1522*9880d681SAndroid Build Coastguard Worker 1523*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) nounwind readnone 1524*9880d681SAndroid Build Coastguard Worker 1525*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfmaddsub128_pd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) { 1526*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmaddsub128_pd: 1527*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1528*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1529*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa6,0xc2] 1530*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1531*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) nounwind 1532*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1533*9880d681SAndroid Build Coastguard Worker} 1534*9880d681SAndroid Build Coastguard Worker 1535*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vfmaddsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1536*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_pd_128: 1537*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1538*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1539*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1540*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa6,0xda] 1541*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa6,0xc2] 1542*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1543*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1544*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1545*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1546*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1547*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1548*9880d681SAndroid Build Coastguard Worker} 1549*9880d681SAndroid Build Coastguard Worker 1550*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1551*9880d681SAndroid Build Coastguard Worker 1552*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask3_vfmaddsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1553*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_pd_128: 1554*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1555*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1556*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1557*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231pd %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0xb6,0xd9] 1558*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa6,0xc2] 1559*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1560*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1561*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1562*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1563*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1564*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1565*9880d681SAndroid Build Coastguard Worker} 1566*9880d681SAndroid Build Coastguard Worker 1567*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1568*9880d681SAndroid Build Coastguard Worker 1569*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_maskz_vfmaddsub_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1570*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_pd_128: 1571*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1572*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1573*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1574*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0x89,0xa6,0xda] 1575*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa6,0xc2] 1576*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1577*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1578*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1579*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1580*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1581*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1582*9880d681SAndroid Build Coastguard Worker} 1583*9880d681SAndroid Build Coastguard Worker 1584*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_vfmaddsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1585*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_pd_256: 1586*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1587*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1588*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1589*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa6,0xda] 1590*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa6,0xc2] 1591*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1592*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1593*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1594*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1595*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1596*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1597*9880d681SAndroid Build Coastguard Worker} 1598*9880d681SAndroid Build Coastguard Worker 1599*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1600*9880d681SAndroid Build Coastguard Worker 1601*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask3_vfmaddsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1602*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_pd_256: 1603*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1604*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1605*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1606*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231pd %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0xb6,0xd9] 1607*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa6,0xc2] 1608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1610*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1611*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1612*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1613*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1614*9880d681SAndroid Build Coastguard Worker} 1615*9880d681SAndroid Build Coastguard Worker 1616*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1617*9880d681SAndroid Build Coastguard Worker 1618*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_maskz_vfmaddsub_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1619*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_pd_256: 1620*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1621*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1622*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1623*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0xa9,0xa6,0xda] 1624*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa6,0xc2] 1625*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1626*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1627*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1628*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1629*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1630*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1631*9880d681SAndroid Build Coastguard Worker} 1632*9880d681SAndroid Build Coastguard Worker 1633*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_vfmaddsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1634*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_ps_128: 1635*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1636*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1637*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1638*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa6,0xda] 1639*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa6,0xc2] 1640*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1641*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1642*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1643*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1644*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1645*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1646*9880d681SAndroid Build Coastguard Worker} 1647*9880d681SAndroid Build Coastguard Worker 1648*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1649*9880d681SAndroid Build Coastguard Worker 1650*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask3_vfmaddsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1651*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_ps_128: 1652*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1653*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1654*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1655*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231ps %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0xb6,0xd9] 1656*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa6,0xc2] 1657*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1658*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1659*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1660*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1661*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1662*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1663*9880d681SAndroid Build Coastguard Worker} 1664*9880d681SAndroid Build Coastguard Worker 1665*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1666*9880d681SAndroid Build Coastguard Worker 1667*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_maskz_vfmaddsub_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_ps_128: 1669*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1670*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1671*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1672*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0x89,0xa6,0xda] 1673*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa6,0xc2] 1674*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1675*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1676*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1677*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1678*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1679*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1680*9880d681SAndroid Build Coastguard Worker} 1681*9880d681SAndroid Build Coastguard Worker 1682*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_vfmaddsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1683*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_ps_256: 1684*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1685*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1686*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1687*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0xa6,0xda] 1688*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa6,0xc2] 1689*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1690*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1691*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1692*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1693*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1694*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1695*9880d681SAndroid Build Coastguard Worker} 1696*9880d681SAndroid Build Coastguard Worker 1697*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1698*9880d681SAndroid Build Coastguard Worker 1699*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask3_vfmaddsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1700*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_ps_256: 1701*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1702*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1703*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1704*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231ps %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0xb6,0xd9] 1705*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa6,0xc2] 1706*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1707*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1708*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1709*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1710*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1711*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1712*9880d681SAndroid Build Coastguard Worker} 1713*9880d681SAndroid Build Coastguard Worker 1714*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1715*9880d681SAndroid Build Coastguard Worker 1716*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_maskz_vfmaddsub_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_ps_256: 1718*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd8] 1721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0xa9,0xa6,0xda] 1722*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa6,0xc2] 1723*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1724*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1725*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1726*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1727*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 1728*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1729*9880d681SAndroid Build Coastguard Worker} 1730*9880d681SAndroid Build Coastguard Worker 1731*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.128(<2 x double>, <2 x double>, <2 x double>, i8) 1732*9880d681SAndroid Build Coastguard Worker 1733*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask3_vfmsubadd_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) { 1734*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_pd_128: 1735*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1736*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1737*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1738*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231pd %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0xb7,0xd9] 1739*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa7,0xc2] 1740*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0xe5,0x08,0x58,0xc0] 1741*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1742*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 %x3) 1743*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x2, i8 -1) 1744*9880d681SAndroid Build Coastguard Worker %res2=fadd <2 x double> %res, %res1 1745*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1746*9880d681SAndroid Build Coastguard Worker} 1747*9880d681SAndroid Build Coastguard Worker 1748*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.256(<4 x double>, <4 x double>, <4 x double>, i8) 1749*9880d681SAndroid Build Coastguard Worker 1750*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask3_vfmsubadd_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) { 1751*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_pd_256: 1752*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1753*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1754*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231pd %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0xb7,0xd9] 1756*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa7,0xc2] 1757*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 1758*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1759*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 %x3) 1760*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x2, i8 -1) 1761*9880d681SAndroid Build Coastguard Worker %res2=fadd <4 x double> %res, %res1 1762*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1763*9880d681SAndroid Build Coastguard Worker} 1764*9880d681SAndroid Build Coastguard Worker 1765*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1766*9880d681SAndroid Build Coastguard Worker 1767*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask3_vfmsubadd_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) { 1768*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_ps_128: 1769*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1770*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1771*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1772*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231ps %xmm1, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0xb7,0xd9] 1773*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa7,0xc2] 1774*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x64,0x08,0x58,0xc0] 1775*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1776*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 %x3) 1777*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x2, i8 -1) 1778*9880d681SAndroid Build Coastguard Worker %res2=fadd <4 x float> %res, %res1 1779*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1780*9880d681SAndroid Build Coastguard Worker} 1781*9880d681SAndroid Build Coastguard Worker 1782*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1783*9880d681SAndroid Build Coastguard Worker 1784*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask3_vfmsubadd_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) { 1785*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_ps_256: 1786*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1787*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1788*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xda] 1789*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231ps %ymm1, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0xb7,0xd9] 1790*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213ps %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0xa7,0xc2] 1791*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x64,0x28,0x58,0xc0] 1792*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1793*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 %x3) 1794*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x2, i8 -1) 1795*9880d681SAndroid Build Coastguard Worker %res2=fadd <8 x float> %res, %res1 1796*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 1797*9880d681SAndroid Build Coastguard Worker} 1798*9880d681SAndroid Build Coastguard Worker 1799*9880d681SAndroid Build Coastguard Worker 1800*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_r(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) { 1801*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_r: 1802*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1803*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1804*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa8,0xc2] 1805*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1806*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 1807*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1808*9880d681SAndroid Build Coastguard Worker} 1809*9880d681SAndroid Build Coastguard Worker 1810*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rz(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) { 1811*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rz: 1812*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1813*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0xc2] 1814*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1815*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 -1) nounwind 1816*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1817*9880d681SAndroid Build Coastguard Worker} 1818*9880d681SAndroid Build Coastguard Worker 1819*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmk(<4 x float> %a0, <4 x float> %a1, <4 x float>* %ptr_a2, i8 %mask) { 1820*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmk: 1821*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1822*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1823*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi), %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa8,0x07] 1824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1825*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x float>, <4 x float>* %ptr_a2 1826*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 1827*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1828*9880d681SAndroid Build Coastguard Worker} 1829*9880d681SAndroid Build Coastguard Worker 1830*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmka(<4 x float> %a0, <4 x float> %a1, <4 x float>* %ptr_a2, i8 %mask) { 1831*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmka: 1832*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1833*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1834*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi), %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0xa8,0x07] 1835*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1836*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x float>, <4 x float>* %ptr_a2, align 8 1837*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 %mask) nounwind 1838*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1839*9880d681SAndroid Build Coastguard Worker} 1840*9880d681SAndroid Build Coastguard Worker 1841*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmkz(<4 x float> %a0, <4 x float> %a1, <4 x float>* %ptr_a2) { 1842*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmkz: 1843*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1844*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi), %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0x07] 1845*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1846*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x float>, <4 x float>* %ptr_a2 1847*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 -1) nounwind 1848*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1849*9880d681SAndroid Build Coastguard Worker} 1850*9880d681SAndroid Build Coastguard Worker 1851*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmkza(<4 x float> %a0, <4 x float> %a1, <4 x float>* %ptr_a2) { 1852*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmkza: 1853*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1854*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi), %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0xa8,0x07] 1855*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1856*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x float>, <4 x float>* %ptr_a2, align 4 1857*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, i8 -1) nounwind 1858*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1859*9880d681SAndroid Build Coastguard Worker} 1860*9880d681SAndroid Build Coastguard Worker 1861*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmb(<4 x float> %a0, <4 x float> %a1, float* %ptr_a2, i8 %mask) { 1862*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmb: 1863*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1864*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1865*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi){1to4}, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x19,0xa8,0x07] 1866*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1867*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_a2 1868*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1869*9880d681SAndroid Build Coastguard Worker %vecinit2.i = insertelement <4 x float> %vecinit.i, float %q, i32 1 1870*9880d681SAndroid Build Coastguard Worker %vecinit4.i = insertelement <4 x float> %vecinit2.i, float %q, i32 2 1871*9880d681SAndroid Build Coastguard Worker %vecinit6.i = insertelement <4 x float> %vecinit4.i, float %q, i32 3 1872*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %vecinit6.i, i8 %mask) nounwind 1873*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1874*9880d681SAndroid Build Coastguard Worker} 1875*9880d681SAndroid Build Coastguard Worker 1876*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmba(<4 x float> %a0, <4 x float> %a1, float* %ptr_a2, i8 %mask) { 1877*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmba: 1878*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1879*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1880*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi){1to4}, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x75,0x19,0xa8,0x07] 1881*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1882*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_a2, align 4 1883*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1884*9880d681SAndroid Build Coastguard Worker %vecinit2.i = insertelement <4 x float> %vecinit.i, float %q, i32 1 1885*9880d681SAndroid Build Coastguard Worker %vecinit4.i = insertelement <4 x float> %vecinit2.i, float %q, i32 2 1886*9880d681SAndroid Build Coastguard Worker %vecinit6.i = insertelement <4 x float> %vecinit4.i, float %q, i32 3 1887*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %vecinit6.i, i8 %mask) nounwind 1888*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1889*9880d681SAndroid Build Coastguard Worker} 1890*9880d681SAndroid Build Coastguard Worker 1891*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmbz(<4 x float> %a0, <4 x float> %a1, float* %ptr_a2) { 1892*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmbz: 1893*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1894*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi){1to4}, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x18,0xa8,0x07] 1895*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1896*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_a2 1897*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1898*9880d681SAndroid Build Coastguard Worker %vecinit2.i = insertelement <4 x float> %vecinit.i, float %q, i32 1 1899*9880d681SAndroid Build Coastguard Worker %vecinit4.i = insertelement <4 x float> %vecinit2.i, float %q, i32 2 1900*9880d681SAndroid Build Coastguard Worker %vecinit6.i = insertelement <4 x float> %vecinit4.i, float %q, i32 3 1901*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %vecinit6.i, i8 -1) nounwind 1902*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1903*9880d681SAndroid Build Coastguard Worker} 1904*9880d681SAndroid Build Coastguard Worker 1905*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_vfmadd128_ps_rmbza(<4 x float> %a0, <4 x float> %a1, float* %ptr_a2) { 1906*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_ps_rmbza: 1907*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1908*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps (%rdi){1to4}, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x18,0xa8,0x07] 1909*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1910*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_a2, align 4 1911*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1912*9880d681SAndroid Build Coastguard Worker %vecinit2.i = insertelement <4 x float> %vecinit.i, float %q, i32 1 1913*9880d681SAndroid Build Coastguard Worker %vecinit4.i = insertelement <4 x float> %vecinit2.i, float %q, i32 2 1914*9880d681SAndroid Build Coastguard Worker %vecinit6.i = insertelement <4 x float> %vecinit4.i, float %q, i32 3 1915*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.vfmadd.ps.128(<4 x float> %a0, <4 x float> %a1, <4 x float> %vecinit6.i, i8 -1) nounwind 1916*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1917*9880d681SAndroid Build Coastguard Worker} 1918*9880d681SAndroid Build Coastguard Worker 1919*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfmadd128_pd_r(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) { 1920*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_pd_r: 1921*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1922*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1923*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa8,0xc2] 1924*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1925*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) nounwind 1926*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1927*9880d681SAndroid Build Coastguard Worker} 1928*9880d681SAndroid Build Coastguard Worker 1929*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfmadd128_pd_rz(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) { 1930*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_pd_rz: 1931*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1932*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa8,0xc2] 1933*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1934*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 -1) nounwind 1935*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1936*9880d681SAndroid Build Coastguard Worker} 1937*9880d681SAndroid Build Coastguard Worker 1938*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfmadd128_pd_rmk(<2 x double> %a0, <2 x double> %a1, <2 x double>* %ptr_a2, i8 %mask) { 1939*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_pd_rmk: 1940*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1941*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1942*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd (%rdi), %xmm1, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0xa8,0x07] 1943*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1944*9880d681SAndroid Build Coastguard Worker %a2 = load <2 x double>, <2 x double>* %ptr_a2 1945*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 %mask) nounwind 1946*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1947*9880d681SAndroid Build Coastguard Worker} 1948*9880d681SAndroid Build Coastguard Worker 1949*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_mask_vfmadd128_pd_rmkz(<2 x double> %a0, <2 x double> %a1, <2 x double>* %ptr_a2) { 1950*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd128_pd_rmkz: 1951*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1952*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd (%rdi), %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0xa8,0x07] 1953*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1954*9880d681SAndroid Build Coastguard Worker %a2 = load <2 x double>, <2 x double>* %ptr_a2 1955*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vfmadd.pd.128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, i8 -1) nounwind 1956*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res 1957*9880d681SAndroid Build Coastguard Worker} 1958*9880d681SAndroid Build Coastguard Worker 1959*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfmadd256_pd_r(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) { 1960*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd256_pd_r: 1961*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1962*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1963*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa8,0xc2] 1964*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1965*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) nounwind 1966*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1967*9880d681SAndroid Build Coastguard Worker} 1968*9880d681SAndroid Build Coastguard Worker 1969*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfmadd256_pd_rz(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) { 1970*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd256_pd_rz: 1971*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1972*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa8,0xc2] 1973*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1974*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 -1) nounwind 1975*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1976*9880d681SAndroid Build Coastguard Worker} 1977*9880d681SAndroid Build Coastguard Worker 1978*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfmadd256_pd_rmk(<4 x double> %a0, <4 x double> %a1, <4 x double>* %ptr_a2, i8 %mask) { 1979*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd256_pd_rmk: 1980*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1981*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1982*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd (%rdi), %ymm1, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0xa8,0x07] 1983*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1984*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x double>, <4 x double>* %ptr_a2 1985*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 %mask) nounwind 1986*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1987*9880d681SAndroid Build Coastguard Worker} 1988*9880d681SAndroid Build Coastguard Worker 1989*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_mask_vfmadd256_pd_rmkz(<4 x double> %a0, <4 x double> %a1, <4 x double>* %ptr_a2) { 1990*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmadd256_pd_rmkz: 1991*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd (%rdi), %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0xa8,0x07] 1993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1994*9880d681SAndroid Build Coastguard Worker %a2 = load <4 x double>, <4 x double>* %ptr_a2 1995*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.vfmadd.pd.256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, i8 -1) nounwind 1996*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res 1997*9880d681SAndroid Build Coastguard Worker} 1998*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 1999*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rr_128: 2000*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2001*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfd,0xc1] 2002*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2003*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2004*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2005*9880d681SAndroid Build Coastguard Worker} 2006*9880d681SAndroid Build Coastguard Worker 2007*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 2008*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrk_128: 2009*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2011*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xfd,0xd1] 2012*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2013*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2014*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2015*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2016*9880d681SAndroid Build Coastguard Worker} 2017*9880d681SAndroid Build Coastguard Worker 2018*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 2019*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrkz_128: 2020*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2021*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xfd,0xc1] 2023*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2024*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2025*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2026*9880d681SAndroid Build Coastguard Worker} 2027*9880d681SAndroid Build Coastguard Worker 2028*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 2029*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rm_128: 2030*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfd,0x07] 2032*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2033*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2034*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2035*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2036*9880d681SAndroid Build Coastguard Worker} 2037*9880d681SAndroid Build Coastguard Worker 2038*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2039*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmk_128: 2040*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2041*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2042*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xfd,0x0f] 2043*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2044*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2045*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2046*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2047*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2048*9880d681SAndroid Build Coastguard Worker} 2049*9880d681SAndroid Build Coastguard Worker 2050*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_add_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 2051*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmkz_128: 2052*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2053*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2054*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xfd,0x07] 2055*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2056*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2057*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2058*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2059*9880d681SAndroid Build Coastguard Worker} 2060*9880d681SAndroid Build Coastguard Worker 2061*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.padd.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 2062*9880d681SAndroid Build Coastguard Worker 2063*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 2064*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rr_256: 2065*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2066*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfd,0xc1] 2067*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2068*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2069*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2070*9880d681SAndroid Build Coastguard Worker} 2071*9880d681SAndroid Build Coastguard Worker 2072*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 2073*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrk_256: 2074*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2075*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2076*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xfd,0xd1] 2077*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2078*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2079*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2080*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2081*9880d681SAndroid Build Coastguard Worker} 2082*9880d681SAndroid Build Coastguard Worker 2083*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 2084*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrkz_256: 2085*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2086*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2087*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xfd,0xc1] 2088*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2089*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2090*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2091*9880d681SAndroid Build Coastguard Worker} 2092*9880d681SAndroid Build Coastguard Worker 2093*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 2094*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rm_256: 2095*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2096*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfd,0x07] 2097*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2098*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2099*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2100*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2101*9880d681SAndroid Build Coastguard Worker} 2102*9880d681SAndroid Build Coastguard Worker 2103*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 2104*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmk_256: 2105*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xfd,0x0f] 2108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2109*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2110*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2111*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2112*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2113*9880d681SAndroid Build Coastguard Worker} 2114*9880d681SAndroid Build Coastguard Worker 2115*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_add_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 2116*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmkz_256: 2117*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2118*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xfd,0x07] 2120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2121*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2122*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2123*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2124*9880d681SAndroid Build Coastguard Worker} 2125*9880d681SAndroid Build Coastguard Worker 2126*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.padd.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 2127*9880d681SAndroid Build Coastguard Worker 2128*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 2129*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rr_128: 2130*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf9,0xc1] 2132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2133*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2134*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2135*9880d681SAndroid Build Coastguard Worker} 2136*9880d681SAndroid Build Coastguard Worker 2137*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 2138*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrk_128: 2139*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xf9,0xd1] 2142*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2144*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2145*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2146*9880d681SAndroid Build Coastguard Worker} 2147*9880d681SAndroid Build Coastguard Worker 2148*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 2149*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrkz_128: 2150*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xf9,0xc1] 2153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2154*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2155*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2156*9880d681SAndroid Build Coastguard Worker} 2157*9880d681SAndroid Build Coastguard Worker 2158*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 2159*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rm_128: 2160*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf9,0x07] 2162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2163*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2164*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2165*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2166*9880d681SAndroid Build Coastguard Worker} 2167*9880d681SAndroid Build Coastguard Worker 2168*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2169*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmk_128: 2170*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2171*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xf9,0x0f] 2173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2175*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2176*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2177*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2178*9880d681SAndroid Build Coastguard Worker} 2179*9880d681SAndroid Build Coastguard Worker 2180*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_sub_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 2181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmkz_128: 2182*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xf9,0x07] 2185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2186*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2187*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2188*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2189*9880d681SAndroid Build Coastguard Worker} 2190*9880d681SAndroid Build Coastguard Worker 2191*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psub.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 2192*9880d681SAndroid Build Coastguard Worker 2193*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 2194*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rr_256: 2195*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2196*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf9,0xc1] 2197*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2198*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2199*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2200*9880d681SAndroid Build Coastguard Worker} 2201*9880d681SAndroid Build Coastguard Worker 2202*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 2203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrk_256: 2204*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2205*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2206*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xf9,0xd1] 2207*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2208*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2209*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2210*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2211*9880d681SAndroid Build Coastguard Worker} 2212*9880d681SAndroid Build Coastguard Worker 2213*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 2214*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrkz_256: 2215*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xf9,0xc1] 2218*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2219*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2220*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2221*9880d681SAndroid Build Coastguard Worker} 2222*9880d681SAndroid Build Coastguard Worker 2223*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 2224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rm_256: 2225*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf9,0x07] 2227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2228*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2229*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2230*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2231*9880d681SAndroid Build Coastguard Worker} 2232*9880d681SAndroid Build Coastguard Worker 2233*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 2234*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmk_256: 2235*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2237*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xf9,0x0f] 2238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2240*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2241*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2242*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2243*9880d681SAndroid Build Coastguard Worker} 2244*9880d681SAndroid Build Coastguard Worker 2245*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_sub_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 2246*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmkz_256: 2247*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2248*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2249*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xf9,0x07] 2250*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2251*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2252*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2253*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2254*9880d681SAndroid Build Coastguard Worker} 2255*9880d681SAndroid Build Coastguard Worker 2256*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psub.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 2257*9880d681SAndroid Build Coastguard Worker 2258*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rr_512(<32 x i16> %a, <32 x i16> %b) { 2259*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rr_512: 2260*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xfd,0xc1] 2262*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2263*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2264*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2265*9880d681SAndroid Build Coastguard Worker} 2266*9880d681SAndroid Build Coastguard Worker 2267*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) { 2268*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrk_512: 2269*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xfd,0xd1] 2272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2274*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2275*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2276*9880d681SAndroid Build Coastguard Worker} 2277*9880d681SAndroid Build Coastguard Worker 2278*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) { 2279*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rrkz_512: 2280*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xfd,0xc1] 2283*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2284*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2285*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2286*9880d681SAndroid Build Coastguard Worker} 2287*9880d681SAndroid Build Coastguard Worker 2288*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) { 2289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rm_512: 2290*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xfd,0x07] 2292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2293*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2294*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2295*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2296*9880d681SAndroid Build Coastguard Worker} 2297*9880d681SAndroid Build Coastguard Worker 2298*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) { 2299*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmk_512: 2300*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2301*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2302*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xfd,0x0f] 2303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2305*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2306*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2307*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2308*9880d681SAndroid Build Coastguard Worker} 2309*9880d681SAndroid Build Coastguard Worker 2310*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_add_epi16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) { 2311*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_add_epi16_rmkz_512: 2312*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2313*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2314*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xfd,0x07] 2315*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2316*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2317*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2318*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2319*9880d681SAndroid Build Coastguard Worker} 2320*9880d681SAndroid Build Coastguard Worker 2321*9880d681SAndroid Build Coastguard Workerdeclare <32 x i16> @llvm.x86.avx512.mask.padd.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32) 2322*9880d681SAndroid Build Coastguard Worker 2323*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rr_512(<32 x i16> %a, <32 x i16> %b) { 2324*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rr_512: 2325*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xf9,0xc1] 2327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2328*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2329*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2330*9880d681SAndroid Build Coastguard Worker} 2331*9880d681SAndroid Build Coastguard Worker 2332*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) { 2333*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrk_512: 2334*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2335*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2336*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xf9,0xd1] 2337*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2339*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2340*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2341*9880d681SAndroid Build Coastguard Worker} 2342*9880d681SAndroid Build Coastguard Worker 2343*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) { 2344*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rrkz_512: 2345*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2346*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2347*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xf9,0xc1] 2348*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2349*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2350*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2351*9880d681SAndroid Build Coastguard Worker} 2352*9880d681SAndroid Build Coastguard Worker 2353*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) { 2354*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rm_512: 2355*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xf9,0x07] 2357*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2358*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2359*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2360*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2361*9880d681SAndroid Build Coastguard Worker} 2362*9880d681SAndroid Build Coastguard Worker 2363*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) { 2364*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmk_512: 2365*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2366*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xf9,0x0f] 2368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2370*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2371*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2372*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2373*9880d681SAndroid Build Coastguard Worker} 2374*9880d681SAndroid Build Coastguard Worker 2375*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_sub_epi16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) { 2376*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_sub_epi16_rmkz_512: 2377*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubw (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xf9,0x07] 2380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2381*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2382*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2383*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2384*9880d681SAndroid Build Coastguard Worker} 2385*9880d681SAndroid Build Coastguard Worker 2386*9880d681SAndroid Build Coastguard Workerdeclare <32 x i16> @llvm.x86.avx512.mask.psub.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32) 2387*9880d681SAndroid Build Coastguard Worker 2388*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rr_512(<32 x i16> %a, <32 x i16> %b) { 2389*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rr_512: 2390*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2391*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xd5,0xc1] 2392*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2393*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2394*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2395*9880d681SAndroid Build Coastguard Worker} 2396*9880d681SAndroid Build Coastguard Worker 2397*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) { 2398*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrk_512: 2399*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2400*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2401*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xd5,0xd1] 2402*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2404*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2405*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2406*9880d681SAndroid Build Coastguard Worker} 2407*9880d681SAndroid Build Coastguard Worker 2408*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) { 2409*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrkz_512: 2410*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xd5,0xc1] 2413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2414*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2415*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2416*9880d681SAndroid Build Coastguard Worker} 2417*9880d681SAndroid Build Coastguard Worker 2418*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) { 2419*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rm_512: 2420*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2421*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7d,0x48,0xd5,0x07] 2422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2423*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2424*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1) 2425*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2426*9880d681SAndroid Build Coastguard Worker} 2427*9880d681SAndroid Build Coastguard Worker 2428*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) { 2429*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmk_512: 2430*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0xd5,0x0f] 2433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2435*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2436*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) 2437*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2438*9880d681SAndroid Build Coastguard Worker} 2439*9880d681SAndroid Build Coastguard Worker 2440*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_mask_mullo_epi16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) { 2441*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmkz_512: 2442*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2443*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2444*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0xd5,0x07] 2445*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2446*9880d681SAndroid Build Coastguard Worker %b = load <32 x i16>, <32 x i16>* %ptr_b 2447*9880d681SAndroid Build Coastguard Worker %res = call <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask) 2448*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %res 2449*9880d681SAndroid Build Coastguard Worker} 2450*9880d681SAndroid Build Coastguard Worker 2451*9880d681SAndroid Build Coastguard Workerdeclare <32 x i16> @llvm.x86.avx512.mask.pmull.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32) 2452*9880d681SAndroid Build Coastguard Worker 2453*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 2454*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rr_128: 2455*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2456*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd5,0xc1] 2457*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2458*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2459*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2460*9880d681SAndroid Build Coastguard Worker} 2461*9880d681SAndroid Build Coastguard Worker 2462*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 2463*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrk_128: 2464*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2465*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2466*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd5,0xd1] 2467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2469*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2470*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2471*9880d681SAndroid Build Coastguard Worker} 2472*9880d681SAndroid Build Coastguard Worker 2473*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 2474*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrkz_128: 2475*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2476*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2477*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd5,0xc1] 2478*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2479*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2480*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2481*9880d681SAndroid Build Coastguard Worker} 2482*9880d681SAndroid Build Coastguard Worker 2483*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 2484*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rm_128: 2485*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2486*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd5,0x07] 2487*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2488*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2489*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 2490*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2491*9880d681SAndroid Build Coastguard Worker} 2492*9880d681SAndroid Build Coastguard Worker 2493*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2494*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmk_128: 2495*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2496*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2497*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd5,0x0f] 2498*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2499*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2500*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2501*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 2502*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2503*9880d681SAndroid Build Coastguard Worker} 2504*9880d681SAndroid Build Coastguard Worker 2505*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_mullo_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 2506*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmkz_128: 2507*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2508*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd5,0x07] 2510*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2511*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2512*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 2513*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2514*9880d681SAndroid Build Coastguard Worker} 2515*9880d681SAndroid Build Coastguard Worker 2516*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmull.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 2517*9880d681SAndroid Build Coastguard Worker 2518*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 2519*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rr_256: 2520*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2521*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd5,0xc1] 2522*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2523*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2524*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2525*9880d681SAndroid Build Coastguard Worker} 2526*9880d681SAndroid Build Coastguard Worker 2527*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 2528*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrk_256: 2529*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2530*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2531*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd5,0xd1] 2532*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2533*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2534*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2535*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2536*9880d681SAndroid Build Coastguard Worker} 2537*9880d681SAndroid Build Coastguard Worker 2538*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 2539*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rrkz_256: 2540*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2541*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2542*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd5,0xc1] 2543*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2544*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2545*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2546*9880d681SAndroid Build Coastguard Worker} 2547*9880d681SAndroid Build Coastguard Worker 2548*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 2549*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rm_256: 2550*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2551*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd5,0x07] 2552*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2553*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2554*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 2555*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2556*9880d681SAndroid Build Coastguard Worker} 2557*9880d681SAndroid Build Coastguard Worker 2558*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 2559*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmk_256: 2560*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2561*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2562*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd5,0x0f] 2563*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2565*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2566*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 2567*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2568*9880d681SAndroid Build Coastguard Worker} 2569*9880d681SAndroid Build Coastguard Worker 2570*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_mullo_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 2571*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi16_rmkz_256: 2572*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2573*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2574*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd5,0x07] 2575*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2576*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2577*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 2578*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2579*9880d681SAndroid Build Coastguard Worker} 2580*9880d681SAndroid Build Coastguard Worker 2581*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmull.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 2582*9880d681SAndroid Build Coastguard Worker 2583*9880d681SAndroid Build Coastguard Worker 2584*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 2585*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rr_128: 2586*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2587*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6b,0xc1] 2588*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2589*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2590*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2591*9880d681SAndroid Build Coastguard Worker} 2592*9880d681SAndroid Build Coastguard Worker 2593*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) { 2594*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rrk_128: 2595*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2596*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2597*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x6b,0xd1] 2598*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2599*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2600*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 2601*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2602*9880d681SAndroid Build Coastguard Worker} 2603*9880d681SAndroid Build Coastguard Worker 2604*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 2605*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rrkz_128: 2606*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2607*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x6b,0xc1] 2609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2610*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 2611*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2612*9880d681SAndroid Build Coastguard Worker} 2613*9880d681SAndroid Build Coastguard Worker 2614*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 2615*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rm_128: 2616*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6b,0x07] 2618*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2619*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2620*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2621*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2622*9880d681SAndroid Build Coastguard Worker} 2623*9880d681SAndroid Build Coastguard Worker 2624*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2625*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmk_128: 2626*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2627*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2628*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x6b,0x0f] 2629*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2630*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2631*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2632*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 2633*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2634*9880d681SAndroid Build Coastguard Worker} 2635*9880d681SAndroid Build Coastguard Worker 2636*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 2637*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmkz_128: 2638*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2639*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2640*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x6b,0x07] 2641*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2642*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2643*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 2644*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2645*9880d681SAndroid Build Coastguard Worker} 2646*9880d681SAndroid Build Coastguard Worker 2647*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 2648*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmb_128: 2649*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x18,0x6b,0x07] 2651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2652*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2653*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2654*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2655*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2656*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2657*9880d681SAndroid Build Coastguard Worker} 2658*9880d681SAndroid Build Coastguard Worker 2659*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2660*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmbk_128: 2661*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2662*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2663*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x19,0x6b,0x0f] 2664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2666*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2667*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2668*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2669*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 2670*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2671*9880d681SAndroid Build Coastguard Worker} 2672*9880d681SAndroid Build Coastguard Worker 2673*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packs_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 2674*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmbkz_128: 2675*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2676*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2677*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x99,0x6b,0x07] 2678*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2679*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2680*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2681*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2682*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 2683*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2684*9880d681SAndroid Build Coastguard Worker} 2685*9880d681SAndroid Build Coastguard Worker 2686*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.packssdw.128(<4 x i32>, <4 x i32>, <8 x i16>, i8) 2687*9880d681SAndroid Build Coastguard Worker 2688*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 2689*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rr_256: 2690*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2691*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x6b,0xc1] 2692*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2693*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 2694*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2695*9880d681SAndroid Build Coastguard Worker} 2696*9880d681SAndroid Build Coastguard Worker 2697*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) { 2698*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rrk_256: 2699*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2700*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2701*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x6b,0xd1] 2702*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2703*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2704*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 2705*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2706*9880d681SAndroid Build Coastguard Worker} 2707*9880d681SAndroid Build Coastguard Worker 2708*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i16 %mask) { 2709*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rrkz_256: 2710*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2711*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2712*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x6b,0xc1] 2713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2714*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 2715*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2716*9880d681SAndroid Build Coastguard Worker} 2717*9880d681SAndroid Build Coastguard Worker 2718*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 2719*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rm_256: 2720*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x6b,0x07] 2722*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2723*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2724*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 2725*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2726*9880d681SAndroid Build Coastguard Worker} 2727*9880d681SAndroid Build Coastguard Worker 2728*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 2729*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmk_256: 2730*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2732*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x6b,0x0f] 2733*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2734*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2735*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2736*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 2737*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2738*9880d681SAndroid Build Coastguard Worker} 2739*9880d681SAndroid Build Coastguard Worker 2740*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i16 %mask) { 2741*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmkz_256: 2742*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2743*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2744*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x6b,0x07] 2745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2746*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 2747*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 2748*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2749*9880d681SAndroid Build Coastguard Worker} 2750*9880d681SAndroid Build Coastguard Worker 2751*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 2752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmb_256: 2753*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2754*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x38,0x6b,0x07] 2755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2756*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2757*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2758*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2759*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 2760*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2761*9880d681SAndroid Build Coastguard Worker} 2762*9880d681SAndroid Build Coastguard Worker 2763*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <16 x i16> %passThru, i16 %mask) { 2764*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmbk_256: 2765*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2766*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2767*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x39,0x6b,0x0f] 2768*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2769*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2770*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2771*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2772*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2773*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 2774*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2775*9880d681SAndroid Build Coastguard Worker} 2776*9880d681SAndroid Build Coastguard Worker 2777*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packs_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i16 %mask) { 2778*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi32_rmbkz_256: 2779*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2780*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2781*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackssdw (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xb9,0x6b,0x07] 2782*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2783*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2784*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 2785*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 2786*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 2787*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 2788*9880d681SAndroid Build Coastguard Worker} 2789*9880d681SAndroid Build Coastguard Worker 2790*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.packssdw.256(<8 x i32>, <8 x i32>, <16 x i16>, i16) 2791*9880d681SAndroid Build Coastguard Worker 2792*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 2793*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rr_128: 2794*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x63,0xc1] 2796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2797*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 -1) 2798*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2799*9880d681SAndroid Build Coastguard Worker} 2800*9880d681SAndroid Build Coastguard Worker 2801*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) { 2802*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rrk_128: 2803*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2804*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2805*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x63,0xd1] 2806*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2807*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2808*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) 2809*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2810*9880d681SAndroid Build Coastguard Worker} 2811*9880d681SAndroid Build Coastguard Worker 2812*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i16 %mask) { 2813*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rrkz_128: 2814*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2815*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2816*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x63,0xc1] 2817*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2818*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 %mask) 2819*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2820*9880d681SAndroid Build Coastguard Worker} 2821*9880d681SAndroid Build Coastguard Worker 2822*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 2823*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rm_128: 2824*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x63,0x07] 2826*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2827*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2828*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 -1) 2829*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2830*9880d681SAndroid Build Coastguard Worker} 2831*9880d681SAndroid Build Coastguard Worker 2832*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 2833*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rmk_128: 2834*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2835*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2836*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x63,0x0f] 2837*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2838*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2839*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2840*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) 2841*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2842*9880d681SAndroid Build Coastguard Worker} 2843*9880d681SAndroid Build Coastguard Worker 2844*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packs_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i16 %mask) { 2845*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rmkz_128: 2846*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2847*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2848*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x63,0x07] 2849*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2850*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 2851*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 %mask) 2852*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 2853*9880d681SAndroid Build Coastguard Worker} 2854*9880d681SAndroid Build Coastguard Worker 2855*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.packsswb.128(<8 x i16>, <8 x i16>, <16 x i8>, i16) 2856*9880d681SAndroid Build Coastguard Worker 2857*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 2858*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rr_256: 2859*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x63,0xc1] 2861*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2862*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 -1) 2863*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2864*9880d681SAndroid Build Coastguard Worker} 2865*9880d681SAndroid Build Coastguard Worker 2866*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) { 2867*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rrk_256: 2868*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2869*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2870*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x63,0xd1] 2871*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2872*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2873*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) 2874*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2875*9880d681SAndroid Build Coastguard Worker} 2876*9880d681SAndroid Build Coastguard Worker 2877*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i32 %mask) { 2878*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rrkz_256: 2879*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2880*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 2881*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x63,0xc1] 2882*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2883*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 %mask) 2884*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2885*9880d681SAndroid Build Coastguard Worker} 2886*9880d681SAndroid Build Coastguard Worker 2887*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 2888*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rm_256: 2889*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x63,0x07] 2891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2892*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2893*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 -1) 2894*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2895*9880d681SAndroid Build Coastguard Worker} 2896*9880d681SAndroid Build Coastguard Worker 2897*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 2898*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rmk_256: 2899*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2900*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2901*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x63,0x0f] 2902*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2903*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2904*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2905*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) 2906*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2907*9880d681SAndroid Build Coastguard Worker} 2908*9880d681SAndroid Build Coastguard Worker 2909*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packs_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i32 %mask) { 2910*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packs_epi16_rmkz_256: 2911*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2912*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 2913*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpacksswb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x63,0x07] 2914*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2915*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 2916*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 %mask) 2917*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 2918*9880d681SAndroid Build Coastguard Worker} 2919*9880d681SAndroid Build Coastguard Worker 2920*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.packsswb.256(<16 x i16>, <16 x i16>, <32 x i8>, i32) 2921*9880d681SAndroid Build Coastguard Worker 2922*9880d681SAndroid Build Coastguard Worker 2923*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rr_128(<4 x i32> %a, <4 x i32> %b) { 2924*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rr_128: 2925*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2926*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x2b,0xc1] 2927*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2928*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2929*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2930*9880d681SAndroid Build Coastguard Worker} 2931*9880d681SAndroid Build Coastguard Worker 2932*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rrk_128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) { 2933*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rrk_128: 2934*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2935*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2936*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x2b,0xd1] 2937*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 2938*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2939*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 2940*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2941*9880d681SAndroid Build Coastguard Worker} 2942*9880d681SAndroid Build Coastguard Worker 2943*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rrkz_128(<4 x i32> %a, <4 x i32> %b, i8 %mask) { 2944*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rrkz_128: 2945*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2946*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 2947*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x2b,0xc1] 2948*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2949*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 2950*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2951*9880d681SAndroid Build Coastguard Worker} 2952*9880d681SAndroid Build Coastguard Worker 2953*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rm_128(<4 x i32> %a, <4 x i32>* %ptr_b) { 2954*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rm_128: 2955*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2956*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x2b,0x07] 2957*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2958*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2959*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2960*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2961*9880d681SAndroid Build Coastguard Worker} 2962*9880d681SAndroid Build Coastguard Worker 2963*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rmk_128(<4 x i32> %a, <4 x i32>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2964*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmk_128: 2965*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2966*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2967*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x2b,0x0f] 2968*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 2969*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2970*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2971*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 2972*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2973*9880d681SAndroid Build Coastguard Worker} 2974*9880d681SAndroid Build Coastguard Worker 2975*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rmkz_128(<4 x i32> %a, <4 x i32>* %ptr_b, i8 %mask) { 2976*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmkz_128: 2977*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2978*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 2979*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x2b,0x07] 2980*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2981*9880d681SAndroid Build Coastguard Worker %b = load <4 x i32>, <4 x i32>* %ptr_b 2982*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 2983*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2984*9880d681SAndroid Build Coastguard Worker} 2985*9880d681SAndroid Build Coastguard Worker 2986*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rmb_128(<4 x i32> %a, i32* %ptr_b) { 2987*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmb_128: 2988*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2989*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x18,0x2b,0x07] 2990*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2991*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 2992*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 2993*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 2994*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 -1) 2995*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 2996*9880d681SAndroid Build Coastguard Worker} 2997*9880d681SAndroid Build Coastguard Worker 2998*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rmbk_128(<4 x i32> %a, i32* %ptr_b, <8 x i16> %passThru, i8 %mask) { 2999*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmbk_128: 3000*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3001*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3002*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x19,0x2b,0x0f] 3003*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3004*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3005*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 3006*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 3007*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 3008*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> %passThru, i8 %mask) 3009*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3010*9880d681SAndroid Build Coastguard Worker} 3011*9880d681SAndroid Build Coastguard Worker 3012*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_packus_epi32_rmbkz_128(<4 x i32> %a, i32* %ptr_b, i8 %mask) { 3013*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmbkz_128: 3014*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3015*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3016*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x99,0x2b,0x07] 3017*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3018*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 3019*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i32> undef, i32 %q, i32 0 3020*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i32> %vecinit.i, <4 x i32> undef, <4 x i32> zeroinitializer 3021*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32> %a, <4 x i32> %b, <8 x i16> zeroinitializer, i8 %mask) 3022*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3023*9880d681SAndroid Build Coastguard Worker} 3024*9880d681SAndroid Build Coastguard Worker 3025*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.packusdw.128(<4 x i32>, <4 x i32>, <8 x i16>, i8) 3026*9880d681SAndroid Build Coastguard Worker 3027*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rr_256(<8 x i32> %a, <8 x i32> %b) { 3028*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rr_256: 3029*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3030*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x2b,0xc1] 3031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3032*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 3033*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3034*9880d681SAndroid Build Coastguard Worker} 3035*9880d681SAndroid Build Coastguard Worker 3036*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rrk_256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) { 3037*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rrk_256: 3038*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3039*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3040*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x2b,0xd1] 3041*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3042*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3043*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 3044*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3045*9880d681SAndroid Build Coastguard Worker} 3046*9880d681SAndroid Build Coastguard Worker 3047*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rrkz_256(<8 x i32> %a, <8 x i32> %b, i16 %mask) { 3048*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rrkz_256: 3049*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3050*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3051*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x2b,0xc1] 3052*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3053*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 3054*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3055*9880d681SAndroid Build Coastguard Worker} 3056*9880d681SAndroid Build Coastguard Worker 3057*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rm_256(<8 x i32> %a, <8 x i32>* %ptr_b) { 3058*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rm_256: 3059*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3060*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x2b,0x07] 3061*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3062*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 3063*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 3064*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3065*9880d681SAndroid Build Coastguard Worker} 3066*9880d681SAndroid Build Coastguard Worker 3067*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rmk_256(<8 x i32> %a, <8 x i32>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3068*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmk_256: 3069*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3070*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3071*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x2b,0x0f] 3072*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3073*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3074*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 3075*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 3076*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3077*9880d681SAndroid Build Coastguard Worker} 3078*9880d681SAndroid Build Coastguard Worker 3079*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rmkz_256(<8 x i32> %a, <8 x i32>* %ptr_b, i16 %mask) { 3080*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmkz_256: 3081*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3082*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3083*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x2b,0x07] 3084*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3085*9880d681SAndroid Build Coastguard Worker %b = load <8 x i32>, <8 x i32>* %ptr_b 3086*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 3087*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3088*9880d681SAndroid Build Coastguard Worker} 3089*9880d681SAndroid Build Coastguard Worker 3090*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rmb_256(<8 x i32> %a, i32* %ptr_b) { 3091*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmb_256: 3092*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3093*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x38,0x2b,0x07] 3094*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3095*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 3096*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 3097*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 3098*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 -1) 3099*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3100*9880d681SAndroid Build Coastguard Worker} 3101*9880d681SAndroid Build Coastguard Worker 3102*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rmbk_256(<8 x i32> %a, i32* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmbk_256: 3104*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x39,0x2b,0x0f] 3107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3109*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 3110*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 3111*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 3112*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> %passThru, i16 %mask) 3113*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3114*9880d681SAndroid Build Coastguard Worker} 3115*9880d681SAndroid Build Coastguard Worker 3116*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_packus_epi32_rmbkz_256(<8 x i32> %a, i32* %ptr_b, i16 %mask) { 3117*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi32_rmbkz_256: 3118*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackusdw (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xb9,0x2b,0x07] 3121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3122*9880d681SAndroid Build Coastguard Worker %q = load i32, i32* %ptr_b 3123*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i32> undef, i32 %q, i32 0 3124*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i32> %vecinit.i, <8 x i32> undef, <8 x i32> zeroinitializer 3125*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32> %a, <8 x i32> %b, <16 x i16> zeroinitializer, i16 %mask) 3126*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3127*9880d681SAndroid Build Coastguard Worker} 3128*9880d681SAndroid Build Coastguard Worker 3129*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.packusdw.256(<8 x i32>, <8 x i32>, <16 x i16>, i16) 3130*9880d681SAndroid Build Coastguard Worker 3131*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 3132*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rr_128: 3133*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x67,0xc1] 3135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3136*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 -1) 3137*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3138*9880d681SAndroid Build Coastguard Worker} 3139*9880d681SAndroid Build Coastguard Worker 3140*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) { 3141*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rrk_128: 3142*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3144*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x67,0xd1] 3145*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3146*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3147*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) 3148*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3149*9880d681SAndroid Build Coastguard Worker} 3150*9880d681SAndroid Build Coastguard Worker 3151*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i16 %mask) { 3152*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rrkz_128: 3153*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3154*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3155*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x67,0xc1] 3156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3157*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 %mask) 3158*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3159*9880d681SAndroid Build Coastguard Worker} 3160*9880d681SAndroid Build Coastguard Worker 3161*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 3162*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rm_128: 3163*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x67,0x07] 3165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3166*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3167*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 -1) 3168*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3169*9880d681SAndroid Build Coastguard Worker} 3170*9880d681SAndroid Build Coastguard Worker 3171*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 3172*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rmk_128: 3173*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x67,0x0f] 3176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3178*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3179*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> %passThru, i16 %mask) 3180*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3181*9880d681SAndroid Build Coastguard Worker} 3182*9880d681SAndroid Build Coastguard Worker 3183*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_packus_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i16 %mask) { 3184*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rmkz_128: 3185*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3186*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3187*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x67,0x07] 3188*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3189*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3190*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16> %a, <8 x i16> %b, <16 x i8> zeroinitializer, i16 %mask) 3191*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3192*9880d681SAndroid Build Coastguard Worker} 3193*9880d681SAndroid Build Coastguard Worker 3194*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.packuswb.128(<8 x i16>, <8 x i16>, <16 x i8>, i16) 3195*9880d681SAndroid Build Coastguard Worker 3196*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 3197*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rr_256: 3198*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x67,0xc1] 3200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3201*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 -1) 3202*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3203*9880d681SAndroid Build Coastguard Worker} 3204*9880d681SAndroid Build Coastguard Worker 3205*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) { 3206*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rrk_256: 3207*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3208*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 3209*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x67,0xd1] 3210*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3211*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3212*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) 3213*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3214*9880d681SAndroid Build Coastguard Worker} 3215*9880d681SAndroid Build Coastguard Worker 3216*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i32 %mask) { 3217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rrkz_256: 3218*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 3220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x67,0xc1] 3221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3222*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 %mask) 3223*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3224*9880d681SAndroid Build Coastguard Worker} 3225*9880d681SAndroid Build Coastguard Worker 3226*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 3227*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rm_256: 3228*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3229*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x67,0x07] 3230*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3231*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3232*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 -1) 3233*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3234*9880d681SAndroid Build Coastguard Worker} 3235*9880d681SAndroid Build Coastguard Worker 3236*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 3237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rmk_256: 3238*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 3240*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x67,0x0f] 3241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3242*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3243*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3244*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> %passThru, i32 %mask) 3245*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3246*9880d681SAndroid Build Coastguard Worker} 3247*9880d681SAndroid Build Coastguard Worker 3248*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_packus_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i32 %mask) { 3249*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_packus_epi16_rmkz_256: 3250*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 3252*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpackuswb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x67,0x07] 3253*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3254*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3255*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16> %a, <16 x i16> %b, <32 x i8> zeroinitializer, i32 %mask) 3256*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3257*9880d681SAndroid Build Coastguard Worker} 3258*9880d681SAndroid Build Coastguard Worker 3259*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16>, <16 x i16>, <32 x i8>, i32) 3260*9880d681SAndroid Build Coastguard Worker 3261*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 3262*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rr_128: 3263*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xed,0xc1] 3265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3266*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3267*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3268*9880d681SAndroid Build Coastguard Worker} 3269*9880d681SAndroid Build Coastguard Worker 3270*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 3271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rrk_128: 3272*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xed,0xd1] 3275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3276*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3277*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3278*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3279*9880d681SAndroid Build Coastguard Worker} 3280*9880d681SAndroid Build Coastguard Worker 3281*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 3282*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rrkz_128: 3283*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3284*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3285*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xed,0xc1] 3286*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3287*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3288*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3289*9880d681SAndroid Build Coastguard Worker} 3290*9880d681SAndroid Build Coastguard Worker 3291*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 3292*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rm_128: 3293*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xed,0x07] 3295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3296*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3297*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3298*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3299*9880d681SAndroid Build Coastguard Worker} 3300*9880d681SAndroid Build Coastguard Worker 3301*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 3302*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rmk_128: 3303*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xed,0x0f] 3306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3308*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3309*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3310*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3311*9880d681SAndroid Build Coastguard Worker} 3312*9880d681SAndroid Build Coastguard Worker 3313*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 3314*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rmkz_128: 3315*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3316*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xed,0x07] 3318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3319*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3320*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3321*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3322*9880d681SAndroid Build Coastguard Worker} 3323*9880d681SAndroid Build Coastguard Worker 3324*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 3325*9880d681SAndroid Build Coastguard Worker 3326*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 3327*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rr_256: 3328*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xed,0xc1] 3330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3331*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3332*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3333*9880d681SAndroid Build Coastguard Worker} 3334*9880d681SAndroid Build Coastguard Worker 3335*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 3336*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rrk_256: 3337*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xed,0xd1] 3340*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3341*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3342*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3343*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3344*9880d681SAndroid Build Coastguard Worker} 3345*9880d681SAndroid Build Coastguard Worker 3346*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 3347*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rrkz_256: 3348*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3349*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3350*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xed,0xc1] 3351*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3352*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3353*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3354*9880d681SAndroid Build Coastguard Worker} 3355*9880d681SAndroid Build Coastguard Worker 3356*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 3357*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rm_256: 3358*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xed,0x07] 3360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3361*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3362*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3363*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3364*9880d681SAndroid Build Coastguard Worker} 3365*9880d681SAndroid Build Coastguard Worker 3366*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3367*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rmk_256: 3368*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xed,0x0f] 3371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3372*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3373*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3374*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3375*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3376*9880d681SAndroid Build Coastguard Worker} 3377*9880d681SAndroid Build Coastguard Worker 3378*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 3379*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi16_rmkz_256: 3380*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xed,0x07] 3383*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3384*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3385*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3386*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3387*9880d681SAndroid Build Coastguard Worker} 3388*9880d681SAndroid Build Coastguard Worker 3389*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 3390*9880d681SAndroid Build Coastguard Worker 3391*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) { 3392*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rr_128: 3393*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3394*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe9,0xc1] 3395*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3396*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3397*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3398*9880d681SAndroid Build Coastguard Worker} 3399*9880d681SAndroid Build Coastguard Worker 3400*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 3401*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rrk_128: 3402*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe9,0xd1] 3405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3407*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3408*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3409*9880d681SAndroid Build Coastguard Worker} 3410*9880d681SAndroid Build Coastguard Worker 3411*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 3412*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rrkz_128: 3413*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3414*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3415*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xe9,0xc1] 3416*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3417*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3418*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3419*9880d681SAndroid Build Coastguard Worker} 3420*9880d681SAndroid Build Coastguard Worker 3421*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 3422*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rm_128: 3423*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3424*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe9,0x07] 3425*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3426*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3427*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3428*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3429*9880d681SAndroid Build Coastguard Worker} 3430*9880d681SAndroid Build Coastguard Worker 3431*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 3432*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rmk_128: 3433*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3435*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe9,0x0f] 3436*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3437*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3438*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3439*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3440*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3441*9880d681SAndroid Build Coastguard Worker} 3442*9880d681SAndroid Build Coastguard Worker 3443*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 3444*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rmkz_128: 3445*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3446*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3447*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xe9,0x07] 3448*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3449*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3450*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3451*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3452*9880d681SAndroid Build Coastguard Worker} 3453*9880d681SAndroid Build Coastguard Worker 3454*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 3455*9880d681SAndroid Build Coastguard Worker 3456*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) { 3457*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rr_256: 3458*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3459*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe9,0xc1] 3460*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3461*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3462*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3463*9880d681SAndroid Build Coastguard Worker} 3464*9880d681SAndroid Build Coastguard Worker 3465*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 3466*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rrk_256: 3467*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe9,0xd1] 3470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3471*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3472*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3473*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3474*9880d681SAndroid Build Coastguard Worker} 3475*9880d681SAndroid Build Coastguard Worker 3476*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 3477*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rrkz_256: 3478*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3479*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3480*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xe9,0xc1] 3481*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3482*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3483*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3484*9880d681SAndroid Build Coastguard Worker} 3485*9880d681SAndroid Build Coastguard Worker 3486*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 3487*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rm_256: 3488*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe9,0x07] 3490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3491*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3492*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3493*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3494*9880d681SAndroid Build Coastguard Worker} 3495*9880d681SAndroid Build Coastguard Worker 3496*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3497*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rmk_256: 3498*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3499*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3500*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe9,0x0f] 3501*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3502*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3503*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3504*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3505*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3506*9880d681SAndroid Build Coastguard Worker} 3507*9880d681SAndroid Build Coastguard Worker 3508*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 3509*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi16_rmkz_256: 3510*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xe9,0x07] 3513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3514*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3515*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3516*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3517*9880d681SAndroid Build Coastguard Worker} 3518*9880d681SAndroid Build Coastguard Worker 3519*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 3520*9880d681SAndroid Build Coastguard Worker 3521*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rr_128(<8 x i16> %a, <8 x i16> %b) { 3522*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rr_128: 3523*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3524*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdd,0xc1] 3525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3526*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3527*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3528*9880d681SAndroid Build Coastguard Worker} 3529*9880d681SAndroid Build Coastguard Worker 3530*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 3531*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rrk_128: 3532*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3533*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3534*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdd,0xd1] 3535*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3536*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3537*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3538*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3539*9880d681SAndroid Build Coastguard Worker} 3540*9880d681SAndroid Build Coastguard Worker 3541*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 3542*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rrkz_128: 3543*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3544*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3545*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdd,0xc1] 3546*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3547*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3548*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3549*9880d681SAndroid Build Coastguard Worker} 3550*9880d681SAndroid Build Coastguard Worker 3551*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 3552*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rm_128: 3553*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3554*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdd,0x07] 3555*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3556*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3557*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3558*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3559*9880d681SAndroid Build Coastguard Worker} 3560*9880d681SAndroid Build Coastguard Worker 3561*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 3562*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rmk_128: 3563*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdd,0x0f] 3566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3567*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3568*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3569*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3570*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3571*9880d681SAndroid Build Coastguard Worker} 3572*9880d681SAndroid Build Coastguard Worker 3573*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_adds_epu16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 3574*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rmkz_128: 3575*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3576*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3577*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdd,0x07] 3578*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3579*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3580*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3581*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3582*9880d681SAndroid Build Coastguard Worker} 3583*9880d681SAndroid Build Coastguard Worker 3584*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 3585*9880d681SAndroid Build Coastguard Worker 3586*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rr_256(<16 x i16> %a, <16 x i16> %b) { 3587*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rr_256: 3588*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3589*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdd,0xc1] 3590*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3591*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3592*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3593*9880d681SAndroid Build Coastguard Worker} 3594*9880d681SAndroid Build Coastguard Worker 3595*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 3596*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rrk_256: 3597*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3598*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3599*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdd,0xd1] 3600*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3602*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3603*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3604*9880d681SAndroid Build Coastguard Worker} 3605*9880d681SAndroid Build Coastguard Worker 3606*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 3607*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rrkz_256: 3608*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3610*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdd,0xc1] 3611*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3612*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3613*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3614*9880d681SAndroid Build Coastguard Worker} 3615*9880d681SAndroid Build Coastguard Worker 3616*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 3617*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rm_256: 3618*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3619*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdd,0x07] 3620*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3621*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3622*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3623*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3624*9880d681SAndroid Build Coastguard Worker} 3625*9880d681SAndroid Build Coastguard Worker 3626*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3627*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rmk_256: 3628*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3629*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3630*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdd,0x0f] 3631*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3632*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3633*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3634*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3635*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3636*9880d681SAndroid Build Coastguard Worker} 3637*9880d681SAndroid Build Coastguard Worker 3638*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_adds_epu16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 3639*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu16_rmkz_256: 3640*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3641*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3642*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdd,0x07] 3643*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3644*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3645*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3646*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3647*9880d681SAndroid Build Coastguard Worker} 3648*9880d681SAndroid Build Coastguard Worker 3649*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 3650*9880d681SAndroid Build Coastguard Worker 3651*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rr_128(<8 x i16> %a, <8 x i16> %b) { 3652*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rr_128: 3653*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3654*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd9,0xc1] 3655*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3656*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3657*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3658*9880d681SAndroid Build Coastguard Worker} 3659*9880d681SAndroid Build Coastguard Worker 3660*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) { 3661*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rrk_128: 3662*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3663*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd9,0xd1] 3665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3666*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3667*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3668*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3669*9880d681SAndroid Build Coastguard Worker} 3670*9880d681SAndroid Build Coastguard Worker 3671*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) { 3672*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rrkz_128: 3673*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3674*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3675*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd9,0xc1] 3676*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3677*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3678*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3679*9880d681SAndroid Build Coastguard Worker} 3680*9880d681SAndroid Build Coastguard Worker 3681*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) { 3682*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rm_128: 3683*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd9,0x07] 3685*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3686*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3687*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1) 3688*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3689*9880d681SAndroid Build Coastguard Worker} 3690*9880d681SAndroid Build Coastguard Worker 3691*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) { 3692*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rmk_128: 3693*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3694*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3695*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd9,0x0f] 3696*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3697*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3698*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3699*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) 3700*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3701*9880d681SAndroid Build Coastguard Worker} 3702*9880d681SAndroid Build Coastguard Worker 3703*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_mask_subs_epu16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) { 3704*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rmkz_128: 3705*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3706*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3707*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd9,0x07] 3708*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3709*9880d681SAndroid Build Coastguard Worker %b = load <8 x i16>, <8 x i16>* %ptr_b 3710*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask) 3711*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 3712*9880d681SAndroid Build Coastguard Worker} 3713*9880d681SAndroid Build Coastguard Worker 3714*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 3715*9880d681SAndroid Build Coastguard Worker 3716*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rr_256(<16 x i16> %a, <16 x i16> %b) { 3717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rr_256: 3718*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd9,0xc1] 3720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3721*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3722*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3723*9880d681SAndroid Build Coastguard Worker} 3724*9880d681SAndroid Build Coastguard Worker 3725*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) { 3726*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rrk_256: 3727*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3728*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3729*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd9,0xd1] 3730*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3732*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3733*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3734*9880d681SAndroid Build Coastguard Worker} 3735*9880d681SAndroid Build Coastguard Worker 3736*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) { 3737*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rrkz_256: 3738*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3739*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3740*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd9,0xc1] 3741*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3742*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3743*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3744*9880d681SAndroid Build Coastguard Worker} 3745*9880d681SAndroid Build Coastguard Worker 3746*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) { 3747*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rm_256: 3748*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3749*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd9,0x07] 3750*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3751*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3752*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1) 3753*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3754*9880d681SAndroid Build Coastguard Worker} 3755*9880d681SAndroid Build Coastguard Worker 3756*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) { 3757*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rmk_256: 3758*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3759*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd9,0x0f] 3761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3763*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3764*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) 3765*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3766*9880d681SAndroid Build Coastguard Worker} 3767*9880d681SAndroid Build Coastguard Worker 3768*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_mask_subs_epu16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) { 3769*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu16_rmkz_256: 3770*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3771*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3772*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusw (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd9,0x07] 3773*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3774*9880d681SAndroid Build Coastguard Worker %b = load <16 x i16>, <16 x i16>* %ptr_b 3775*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask) 3776*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 3777*9880d681SAndroid Build Coastguard Worker} 3778*9880d681SAndroid Build Coastguard Worker 3779*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 3780*9880d681SAndroid Build Coastguard Worker 3781*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rr_128(<16 x i8> %a, <16 x i8> %b) { 3782*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rr_128: 3783*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3784*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xec,0xc1] 3785*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3786*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 3787*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3788*9880d681SAndroid Build Coastguard Worker} 3789*9880d681SAndroid Build Coastguard Worker 3790*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) { 3791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rrk_128: 3792*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3793*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3794*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xec,0xd1] 3795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3797*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 3798*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3799*9880d681SAndroid Build Coastguard Worker} 3800*9880d681SAndroid Build Coastguard Worker 3801*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 3802*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rrkz_128: 3803*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3804*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3805*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xec,0xc1] 3806*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3807*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 3808*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3809*9880d681SAndroid Build Coastguard Worker} 3810*9880d681SAndroid Build Coastguard Worker 3811*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) { 3812*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rm_128: 3813*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3814*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xec,0x07] 3815*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3816*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3817*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 3818*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3819*9880d681SAndroid Build Coastguard Worker} 3820*9880d681SAndroid Build Coastguard Worker 3821*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 3822*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rmk_128: 3823*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xec,0x0f] 3826*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3827*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3828*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3829*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 3830*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3831*9880d681SAndroid Build Coastguard Worker} 3832*9880d681SAndroid Build Coastguard Worker 3833*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epi8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) { 3834*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rmkz_128: 3835*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3836*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3837*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xec,0x07] 3838*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3839*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3840*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 3841*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3842*9880d681SAndroid Build Coastguard Worker} 3843*9880d681SAndroid Build Coastguard Worker 3844*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 3845*9880d681SAndroid Build Coastguard Worker 3846*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rr_256(<32 x i8> %a, <32 x i8> %b) { 3847*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rr_256: 3848*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3849*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xec,0xc1] 3850*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3851*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 3852*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3853*9880d681SAndroid Build Coastguard Worker} 3854*9880d681SAndroid Build Coastguard Worker 3855*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) { 3856*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rrk_256: 3857*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 3859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xec,0xd1] 3860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3861*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3862*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 3863*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3864*9880d681SAndroid Build Coastguard Worker} 3865*9880d681SAndroid Build Coastguard Worker 3866*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) { 3867*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rrkz_256: 3868*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3869*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 3870*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xec,0xc1] 3871*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3872*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 3873*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3874*9880d681SAndroid Build Coastguard Worker} 3875*9880d681SAndroid Build Coastguard Worker 3876*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) { 3877*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rm_256: 3878*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3879*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xec,0x07] 3880*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3881*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 3882*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 3883*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3884*9880d681SAndroid Build Coastguard Worker} 3885*9880d681SAndroid Build Coastguard Worker 3886*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 3887*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rmk_256: 3888*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3889*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 3890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xec,0x0f] 3891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3892*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3893*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 3894*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 3895*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3896*9880d681SAndroid Build Coastguard Worker} 3897*9880d681SAndroid Build Coastguard Worker 3898*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epi8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) { 3899*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epi8_rmkz_256: 3900*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3901*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 3902*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddsb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xec,0x07] 3903*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3904*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 3905*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 3906*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3907*9880d681SAndroid Build Coastguard Worker} 3908*9880d681SAndroid Build Coastguard Worker 3909*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 3910*9880d681SAndroid Build Coastguard Worker 3911*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rr_128(<16 x i8> %a, <16 x i8> %b) { 3912*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rr_128: 3913*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3914*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe8,0xc1] 3915*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3916*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 3917*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3918*9880d681SAndroid Build Coastguard Worker} 3919*9880d681SAndroid Build Coastguard Worker 3920*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) { 3921*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rrk_128: 3922*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3923*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3924*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe8,0xd1] 3925*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3926*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3927*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 3928*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3929*9880d681SAndroid Build Coastguard Worker} 3930*9880d681SAndroid Build Coastguard Worker 3931*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 3932*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rrkz_128: 3933*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3934*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 3935*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xe8,0xc1] 3936*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3937*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 3938*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3939*9880d681SAndroid Build Coastguard Worker} 3940*9880d681SAndroid Build Coastguard Worker 3941*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) { 3942*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rm_128: 3943*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3944*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe8,0x07] 3945*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3946*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3947*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 3948*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3949*9880d681SAndroid Build Coastguard Worker} 3950*9880d681SAndroid Build Coastguard Worker 3951*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 3952*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rmk_128: 3953*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3954*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3955*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe8,0x0f] 3956*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 3957*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3958*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3959*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 3960*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3961*9880d681SAndroid Build Coastguard Worker} 3962*9880d681SAndroid Build Coastguard Worker 3963*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epi8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) { 3964*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rmkz_128: 3965*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3966*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 3967*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xe8,0x07] 3968*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3969*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 3970*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 3971*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 3972*9880d681SAndroid Build Coastguard Worker} 3973*9880d681SAndroid Build Coastguard Worker 3974*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 3975*9880d681SAndroid Build Coastguard Worker 3976*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rr_256(<32 x i8> %a, <32 x i8> %b) { 3977*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rr_256: 3978*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3979*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe8,0xc1] 3980*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3981*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 3982*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3983*9880d681SAndroid Build Coastguard Worker} 3984*9880d681SAndroid Build Coastguard Worker 3985*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) { 3986*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rrk_256: 3987*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3988*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 3989*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe8,0xd1] 3990*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 3991*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 3992*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 3993*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 3994*9880d681SAndroid Build Coastguard Worker} 3995*9880d681SAndroid Build Coastguard Worker 3996*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) { 3997*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rrkz_256: 3998*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 3999*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4000*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xe8,0xc1] 4001*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4002*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4003*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4004*9880d681SAndroid Build Coastguard Worker} 4005*9880d681SAndroid Build Coastguard Worker 4006*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) { 4007*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rm_256: 4008*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4009*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe8,0x07] 4010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4011*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4012*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 4013*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4014*9880d681SAndroid Build Coastguard Worker} 4015*9880d681SAndroid Build Coastguard Worker 4016*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 4017*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rmk_256: 4018*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4019*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4020*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe8,0x0f] 4021*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 4022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4023*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4024*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 4025*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4026*9880d681SAndroid Build Coastguard Worker} 4027*9880d681SAndroid Build Coastguard Worker 4028*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epi8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) { 4029*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epi8_rmkz_256: 4030*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4032*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubsb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xe8,0x07] 4033*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4034*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4035*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4036*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4037*9880d681SAndroid Build Coastguard Worker} 4038*9880d681SAndroid Build Coastguard Worker 4039*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4040*9880d681SAndroid Build Coastguard Worker 4041*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rr_128(<16 x i8> %a, <16 x i8> %b) { 4042*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rr_128: 4043*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4044*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdc,0xc1] 4045*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4046*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 4047*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4048*9880d681SAndroid Build Coastguard Worker} 4049*9880d681SAndroid Build Coastguard Worker 4050*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) { 4051*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rrk_128: 4052*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4053*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4054*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdc,0xd1] 4055*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 4056*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4057*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 4058*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4059*9880d681SAndroid Build Coastguard Worker} 4060*9880d681SAndroid Build Coastguard Worker 4061*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 4062*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rrkz_128: 4063*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4064*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4065*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdc,0xc1] 4066*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4067*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 4068*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4069*9880d681SAndroid Build Coastguard Worker} 4070*9880d681SAndroid Build Coastguard Worker 4071*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) { 4072*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rm_128: 4073*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4074*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdc,0x07] 4075*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4076*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4077*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 4078*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4079*9880d681SAndroid Build Coastguard Worker} 4080*9880d681SAndroid Build Coastguard Worker 4081*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 4082*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rmk_128: 4083*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4084*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4085*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xdc,0x0f] 4086*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 4087*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4088*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4089*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 4090*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4091*9880d681SAndroid Build Coastguard Worker} 4092*9880d681SAndroid Build Coastguard Worker 4093*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_adds_epu8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) { 4094*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rmkz_128: 4095*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4096*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4097*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xdc,0x07] 4098*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4099*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4100*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 4101*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4102*9880d681SAndroid Build Coastguard Worker} 4103*9880d681SAndroid Build Coastguard Worker 4104*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4105*9880d681SAndroid Build Coastguard Worker 4106*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rr_256(<32 x i8> %a, <32 x i8> %b) { 4107*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rr_256: 4108*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4109*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdc,0xc1] 4110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4111*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 4112*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4113*9880d681SAndroid Build Coastguard Worker} 4114*9880d681SAndroid Build Coastguard Worker 4115*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) { 4116*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rrk_256: 4117*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4118*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdc,0xd1] 4120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 4121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4122*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 4123*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4124*9880d681SAndroid Build Coastguard Worker} 4125*9880d681SAndroid Build Coastguard Worker 4126*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) { 4127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rrkz_256: 4128*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4129*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4130*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdc,0xc1] 4131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4132*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4133*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4134*9880d681SAndroid Build Coastguard Worker} 4135*9880d681SAndroid Build Coastguard Worker 4136*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) { 4137*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rm_256: 4138*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdc,0x07] 4140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4141*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4142*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 4143*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4144*9880d681SAndroid Build Coastguard Worker} 4145*9880d681SAndroid Build Coastguard Worker 4146*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 4147*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rmk_256: 4148*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4149*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xdc,0x0f] 4151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 4152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4153*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4154*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 4155*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4156*9880d681SAndroid Build Coastguard Worker} 4157*9880d681SAndroid Build Coastguard Worker 4158*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_adds_epu8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) { 4159*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_adds_epu8_rmkz_256: 4160*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddusb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xdc,0x07] 4163*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4164*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4165*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4166*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4167*9880d681SAndroid Build Coastguard Worker} 4168*9880d681SAndroid Build Coastguard Worker 4169*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4170*9880d681SAndroid Build Coastguard Worker 4171*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rr_128(<16 x i8> %a, <16 x i8> %b) { 4172*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rr_128: 4173*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd8,0xc1] 4175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4176*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 4177*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4178*9880d681SAndroid Build Coastguard Worker} 4179*9880d681SAndroid Build Coastguard Worker 4180*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) { 4181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rrk_128: 4182*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd8,0xd1] 4185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 4186*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4187*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 4188*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4189*9880d681SAndroid Build Coastguard Worker} 4190*9880d681SAndroid Build Coastguard Worker 4191*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) { 4192*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rrkz_128: 4193*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd8,0xc1] 4196*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4197*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 4198*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4199*9880d681SAndroid Build Coastguard Worker} 4200*9880d681SAndroid Build Coastguard Worker 4201*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) { 4202*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rm_128: 4203*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4204*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd8,0x07] 4205*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4206*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4207*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1) 4208*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4209*9880d681SAndroid Build Coastguard Worker} 4210*9880d681SAndroid Build Coastguard Worker 4211*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) { 4212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rmk_128: 4213*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd8,0x0f] 4216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 4217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4218*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4219*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) 4220*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4221*9880d681SAndroid Build Coastguard Worker} 4222*9880d681SAndroid Build Coastguard Worker 4223*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_mask_subs_epu8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) { 4224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rmkz_128: 4225*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd8,0x07] 4228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4229*9880d681SAndroid Build Coastguard Worker %b = load <16 x i8>, <16 x i8>* %ptr_b 4230*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask) 4231*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 4232*9880d681SAndroid Build Coastguard Worker} 4233*9880d681SAndroid Build Coastguard Worker 4234*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4235*9880d681SAndroid Build Coastguard Worker 4236*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rr_256(<32 x i8> %a, <32 x i8> %b) { 4237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rr_256: 4238*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd8,0xc1] 4240*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4241*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 4242*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4243*9880d681SAndroid Build Coastguard Worker} 4244*9880d681SAndroid Build Coastguard Worker 4245*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) { 4246*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rrk_256: 4247*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4248*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4249*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd8,0xd1] 4250*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 4251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4252*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 4253*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4254*9880d681SAndroid Build Coastguard Worker} 4255*9880d681SAndroid Build Coastguard Worker 4256*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) { 4257*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rrkz_256: 4258*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd8,0xc1] 4261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4262*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4263*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4264*9880d681SAndroid Build Coastguard Worker} 4265*9880d681SAndroid Build Coastguard Worker 4266*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) { 4267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rm_256: 4268*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd8,0x07] 4270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4271*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4272*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1) 4273*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4274*9880d681SAndroid Build Coastguard Worker} 4275*9880d681SAndroid Build Coastguard Worker 4276*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) { 4277*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rmk_256: 4278*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4280*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd8,0x0f] 4281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 4282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4283*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4284*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) 4285*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4286*9880d681SAndroid Build Coastguard Worker} 4287*9880d681SAndroid Build Coastguard Worker 4288*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_mask_subs_epu8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) { 4289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_subs_epu8_rmkz_256: 4290*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 4292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsubusb (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd8,0x07] 4293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4294*9880d681SAndroid Build Coastguard Worker %b = load <32 x i8>, <32 x i8>* %ptr_b 4295*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask) 4296*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 4297*9880d681SAndroid Build Coastguard Worker} 4298*9880d681SAndroid Build Coastguard Worker 4299*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4300*9880d681SAndroid Build Coastguard Worker 4301*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmaxs.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4302*9880d681SAndroid Build Coastguard Worker 4303*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmaxs_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) { 4304*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxs_b_128: 4305*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x3c,0xd1] 4308*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x3c,0xc1] 4309*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4310*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4311*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pmaxs.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2 ,i16 %mask) 4312*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmaxs.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %mask) 4313*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4314*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4315*9880d681SAndroid Build Coastguard Worker} 4316*9880d681SAndroid Build Coastguard Worker 4317*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pmaxs.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4318*9880d681SAndroid Build Coastguard Worker 4319*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pmaxs_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4320*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxs_b_256: 4321*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4322*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x3c,0xd1] 4324*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3c,0xc1] 4325*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4327*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pmaxs.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4328*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pmaxs.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4329*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4330*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4331*9880d681SAndroid Build Coastguard Worker} 4332*9880d681SAndroid Build Coastguard Worker 4333*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmaxs.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4334*9880d681SAndroid Build Coastguard Worker 4335*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmaxs_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4336*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxs_w_128: 4337*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xee,0xd1] 4340*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xee,0xc1] 4341*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4342*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4343*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmaxs.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4344*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmaxs.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4345*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4346*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4347*9880d681SAndroid Build Coastguard Worker} 4348*9880d681SAndroid Build Coastguard Worker 4349*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmaxs.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4350*9880d681SAndroid Build Coastguard Worker 4351*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmaxs_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) { 4352*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxs_w_256: 4353*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4354*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4355*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xee,0xd1] 4356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xee,0xc1] 4357*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4358*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4359*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmaxs.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) 4360*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmaxs.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %mask) 4361*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4362*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4363*9880d681SAndroid Build Coastguard Worker} 4364*9880d681SAndroid Build Coastguard Worker 4365*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmaxu.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4366*9880d681SAndroid Build Coastguard Worker 4367*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmaxu_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2,i16 %mask) { 4368*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxu_b_128: 4369*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxub %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xde,0xd1] 4372*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xde,0xc1] 4373*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4374*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4375*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pmaxu.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) 4376*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmaxu.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %mask) 4377*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4378*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4379*9880d681SAndroid Build Coastguard Worker} 4380*9880d681SAndroid Build Coastguard Worker 4381*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pmaxu.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4382*9880d681SAndroid Build Coastguard Worker 4383*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pmaxu_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4384*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxu_b_256: 4385*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4386*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxub %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xde,0xd1] 4388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xde,0xc1] 4389*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4390*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4391*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pmaxu.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4392*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pmaxu.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4393*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4394*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4395*9880d681SAndroid Build Coastguard Worker} 4396*9880d681SAndroid Build Coastguard Worker 4397*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmaxu.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4398*9880d681SAndroid Build Coastguard Worker 4399*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmaxu_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4400*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxu_w_128: 4401*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4402*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxuw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x3e,0xd1] 4404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3e,0xc1] 4405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4407*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmaxu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4408*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmaxu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4409*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4410*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4411*9880d681SAndroid Build Coastguard Worker} 4412*9880d681SAndroid Build Coastguard Worker 4413*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmaxu.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4414*9880d681SAndroid Build Coastguard Worker 4415*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmaxu_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) { 4416*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaxu_w_256: 4417*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4418*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4419*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxuw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x3e,0xd1] 4420*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x3e,0xc1] 4421*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4423*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmaxu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) 4424*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmaxu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %mask) 4425*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4426*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4427*9880d681SAndroid Build Coastguard Worker} 4428*9880d681SAndroid Build Coastguard Worker 4429*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmins.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4430*9880d681SAndroid Build Coastguard Worker 4431*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmins_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) { 4432*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmins_b_128: 4433*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4435*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x38,0xd1] 4436*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsb %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x38,0xc1] 4437*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4438*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4439*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pmins.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) 4440*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmins.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %mask) 4441*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4442*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4443*9880d681SAndroid Build Coastguard Worker} 4444*9880d681SAndroid Build Coastguard Worker 4445*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pmins.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4446*9880d681SAndroid Build Coastguard Worker 4447*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pmins_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4448*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmins_b_256: 4449*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4450*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4451*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x38,0xd1] 4452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x38,0xc1] 4453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4454*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4455*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pmins.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4456*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pmins.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4457*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4458*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4459*9880d681SAndroid Build Coastguard Worker} 4460*9880d681SAndroid Build Coastguard Worker 4461*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmins.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4462*9880d681SAndroid Build Coastguard Worker 4463*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmins_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4464*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmins_w_128: 4465*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4466*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xea,0xd1] 4468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xea,0xc1] 4469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4471*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmins.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4472*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmins.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4473*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4474*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4475*9880d681SAndroid Build Coastguard Worker} 4476*9880d681SAndroid Build Coastguard Worker 4477*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmins.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4478*9880d681SAndroid Build Coastguard Worker 4479*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmins_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) { 4480*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmins_w_256: 4481*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4482*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4483*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xea,0xd1] 4484*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminsw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xea,0xc1] 4485*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4486*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4487*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmins.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) 4488*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmins.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %mask) 4489*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4490*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4491*9880d681SAndroid Build Coastguard Worker} 4492*9880d681SAndroid Build Coastguard Worker 4493*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pminu.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4494*9880d681SAndroid Build Coastguard Worker 4495*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pminu_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) { 4496*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pminu_b_128: 4497*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4498*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4499*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminub %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xda,0xd1] 4500*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminub %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xda,0xc1] 4501*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4502*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4503*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pminu.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %mask) 4504*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pminu.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %mask) 4505*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4506*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4507*9880d681SAndroid Build Coastguard Worker} 4508*9880d681SAndroid Build Coastguard Worker 4509*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pminu.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4510*9880d681SAndroid Build Coastguard Worker 4511*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pminu_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4512*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pminu_b_256: 4513*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4514*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4515*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminub %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xda,0xd1] 4516*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminub %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xda,0xc1] 4517*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4518*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4519*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pminu.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4520*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pminu.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4521*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4522*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4523*9880d681SAndroid Build Coastguard Worker} 4524*9880d681SAndroid Build Coastguard Worker 4525*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pminu.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4526*9880d681SAndroid Build Coastguard Worker 4527*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pminu_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4528*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pminu_w_128: 4529*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4530*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4531*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminuw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x3a,0xd1] 4532*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3a,0xc1] 4533*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4534*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4535*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pminu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4536*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pminu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4537*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4538*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4539*9880d681SAndroid Build Coastguard Worker} 4540*9880d681SAndroid Build Coastguard Worker 4541*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pminu.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4542*9880d681SAndroid Build Coastguard Worker 4543*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pminu_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) { 4544*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pminu_w_256: 4545*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4546*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4547*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminuw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x3a,0xd1] 4548*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpminuw %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x3a,0xc1] 4549*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4550*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4551*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pminu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %mask) 4552*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pminu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %mask) 4553*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4554*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4555*9880d681SAndroid Build Coastguard Worker} 4556*9880d681SAndroid Build Coastguard Worker 4557*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4558*9880d681SAndroid Build Coastguard Worker 4559*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_vpermt2var_hi_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4560*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermt2var_hi_128: 4561*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4562*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4563*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %xmm2, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x7d,0xda] 4565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %xmm2, %xmm0, %xmm1 ## encoding: [0x62,0xf2,0xfd,0x08,0x7d,0xca] 4566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfd,0xc1] 4567*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4568*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4569*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4570*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4571*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4572*9880d681SAndroid Build Coastguard Worker} 4573*9880d681SAndroid Build Coastguard Worker 4574*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4575*9880d681SAndroid Build Coastguard Worker 4576*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_maskz_vpermt2var_hi_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4577*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vpermt2var_hi_128: 4578*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4579*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4580*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4581*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %xmm2, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x7d,0xda] 4582*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %xmm2, %xmm0, %xmm1 ## encoding: [0x62,0xf2,0xfd,0x08,0x7d,0xca] 4583*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfd,0xc1] 4584*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4585*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4586*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4587*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4588*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4589*9880d681SAndroid Build Coastguard Worker} 4590*9880d681SAndroid Build Coastguard Worker 4591*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4592*9880d681SAndroid Build Coastguard Worker 4593*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_vpermt2var_hi_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4594*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermt2var_hi_256: 4595*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4596*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4597*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4598*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %ymm2, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x7d,0xda] 4599*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %ymm2, %ymm0, %ymm1 ## encoding: [0x62,0xf2,0xfd,0x28,0x7d,0xca] 4600*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfd,0xc1] 4601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4602*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4603*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.vpermt2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4604*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4605*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4606*9880d681SAndroid Build Coastguard Worker} 4607*9880d681SAndroid Build Coastguard Worker 4608*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4609*9880d681SAndroid Build Coastguard Worker 4610*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_maskz_vpermt2var_hi_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4611*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vpermt2var_hi_256: 4612*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4613*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4614*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4615*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %ymm2, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x7d,0xda] 4616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermt2w %ymm2, %ymm0, %ymm1 ## encoding: [0x62,0xf2,0xfd,0x28,0x7d,0xca] 4617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfd,0xc1] 4618*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4619*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4620*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4621*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4622*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4623*9880d681SAndroid Build Coastguard Worker} 4624*9880d681SAndroid Build Coastguard Worker 4625*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4626*9880d681SAndroid Build Coastguard Worker 4627*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_vpermi2var_hi_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4628*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermi2var_hi_128: 4629*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4630*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4631*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4632*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermi2w %xmm2, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x75,0xda] 4633*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermi2w %xmm2, %xmm0, %xmm1 ## encoding: [0x62,0xf2,0xfd,0x08,0x75,0xca] 4634*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfd,0xc1] 4635*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4636*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4637*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4638*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4639*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4640*9880d681SAndroid Build Coastguard Worker} 4641*9880d681SAndroid Build Coastguard Worker 4642*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4643*9880d681SAndroid Build Coastguard Worker 4644*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_vpermi2var_hi_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4645*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vpermi2var_hi_256: 4646*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4647*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm3 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xd9] 4649*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermi2w %ymm2, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x75,0xda] 4650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermi2w %ymm2, %ymm0, %ymm1 ## encoding: [0x62,0xf2,0xfd,0x28,0x75,0xca] 4651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm1, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfd,0xc1] 4652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4653*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4654*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4655*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4656*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4657*9880d681SAndroid Build Coastguard Worker} 4658*9880d681SAndroid Build Coastguard Worker 4659*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4660*9880d681SAndroid Build Coastguard Worker 4661*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pavg_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3) { 4662*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pavg_b_128: 4663*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe0,0xd1] 4666*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe0,0xc1] 4667*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4669*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3) 4670*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 -1) 4671*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4672*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4673*9880d681SAndroid Build Coastguard Worker} 4674*9880d681SAndroid Build Coastguard Worker 4675*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4676*9880d681SAndroid Build Coastguard Worker 4677*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pavg_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4678*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pavg_b_256: 4679*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4680*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4681*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe0,0xd1] 4682*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe0,0xc1] 4683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4685*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4686*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4687*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4688*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4689*9880d681SAndroid Build Coastguard Worker} 4690*9880d681SAndroid Build Coastguard Worker 4691*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4692*9880d681SAndroid Build Coastguard Worker 4693*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pavg_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4694*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pavg_w_128: 4695*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4696*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4697*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe3,0xd1] 4698*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe3,0xc1] 4699*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4700*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4701*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4702*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4703*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4704*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4705*9880d681SAndroid Build Coastguard Worker} 4706*9880d681SAndroid Build Coastguard Worker 4707*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4708*9880d681SAndroid Build Coastguard Worker 4709*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pavg_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pavg_w_256: 4711*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4712*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe3,0xd1] 4714*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpavgw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe3,0xc1] 4715*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4716*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4717*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4718*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4719*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4720*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4721*9880d681SAndroid Build Coastguard Worker} 4722*9880d681SAndroid Build Coastguard Worker 4723*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pshuf.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16) 4724*9880d681SAndroid Build Coastguard Worker 4725*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pshuf_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3) { 4726*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pshuf_b_128: 4727*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4728*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4729*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x00,0xd1] 4730*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufb %xmm1, %xmm0, %xmm0 ## encoding: [0xc4,0xe2,0x79,0x00,0xc1] 4731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 4732*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4733*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pshuf.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3) 4734*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pshuf.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 -1) 4735*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4736*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4737*9880d681SAndroid Build Coastguard Worker} 4738*9880d681SAndroid Build Coastguard Worker 4739*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pshuf.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32) 4740*9880d681SAndroid Build Coastguard Worker 4741*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pshuf_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) { 4742*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pshuf_b_256: 4743*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4744*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x00,0xd1] 4746*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufb %ymm1, %ymm0, %ymm0 ## encoding: [0xc4,0xe2,0x7d,0x00,0xc1] 4747*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 4748*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4749*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pshuf.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) 4750*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pshuf.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1) 4751*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4752*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4753*9880d681SAndroid Build Coastguard Worker} 4754*9880d681SAndroid Build Coastguard Worker 4755*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pabs.b.128(<16 x i8>, <16 x i8>, i16) 4756*9880d681SAndroid Build Coastguard Worker 4757*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pabs_b_128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) { 4758*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pabs_b_128: 4759*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsb %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x1c,0xc8] 4762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1c,0xc0] 4763*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfc,0xc0] 4764*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4765*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pabs.b.128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) 4766*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pabs.b.128(<16 x i8> %x0, <16 x i8> %x1, i16 -1) 4767*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i8> %res, %res1 4768*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res2 4769*9880d681SAndroid Build Coastguard Worker} 4770*9880d681SAndroid Build Coastguard Worker 4771*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pabs.b.256(<32 x i8>, <32 x i8>, i32) 4772*9880d681SAndroid Build Coastguard Worker 4773*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pabs_b_256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) { 4774*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pabs_b_256: 4775*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4776*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 4777*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsb %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x1c,0xc8] 4778*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsb %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x1c,0xc0] 4779*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfc,0xc0] 4780*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4781*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pabs.b.256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) 4782*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pabs.b.256(<32 x i8> %x0, <32 x i8> %x1, i32 -1) 4783*9880d681SAndroid Build Coastguard Worker %res2 = add <32 x i8> %res, %res1 4784*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res2 4785*9880d681SAndroid Build Coastguard Worker} 4786*9880d681SAndroid Build Coastguard Worker 4787*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pabs.w.128(<8 x i16>, <8 x i16>, i8) 4788*9880d681SAndroid Build Coastguard Worker 4789*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pabs_w_128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) { 4790*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pabs_w_128: 4791*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4792*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4793*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsw %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x1d,0xc8] 4794*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsw %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1d,0xc0] 4795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 4796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4797*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pabs.w.128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) 4798*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pabs.w.128(<8 x i16> %x0, <8 x i16> %x1, i8 -1) 4799*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4800*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4801*9880d681SAndroid Build Coastguard Worker} 4802*9880d681SAndroid Build Coastguard Worker 4803*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pabs.w.256(<16 x i16>, <16 x i16>, i16) 4804*9880d681SAndroid Build Coastguard Worker 4805*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pabs_w_256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) { 4806*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pabs_w_256: 4807*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4808*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4809*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsw %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x1d,0xc8] 4810*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpabsw %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x1d,0xc0] 4811*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 4812*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4813*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pabs.w.256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) 4814*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pabs.w.256(<16 x i16> %x0, <16 x i16> %x1, i16 -1) 4815*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4816*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4817*9880d681SAndroid Build Coastguard Worker} 4818*9880d681SAndroid Build Coastguard Worker 4819*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmulhu.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4820*9880d681SAndroid Build Coastguard Worker 4821*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmulhu_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4822*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulhu_w_128: 4823*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhuw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe4,0xd1] 4826*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe4,0xc1] 4827*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4828*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4829*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmulhu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4830*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmulhu.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4831*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4832*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4833*9880d681SAndroid Build Coastguard Worker} 4834*9880d681SAndroid Build Coastguard Worker 4835*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmulhu.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4836*9880d681SAndroid Build Coastguard Worker 4837*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmulhu_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4838*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulhu_w_256: 4839*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4840*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4841*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhuw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe4,0xd1] 4842*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhuw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe4,0xc1] 4843*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4844*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4845*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmulhu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4846*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmulhu.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4847*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4848*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4849*9880d681SAndroid Build Coastguard Worker} 4850*9880d681SAndroid Build Coastguard Worker 4851*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmulh.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4852*9880d681SAndroid Build Coastguard Worker 4853*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmulh_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4854*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulh_w_128: 4855*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4856*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4857*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe5,0xd1] 4858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe5,0xc1] 4859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4861*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmulh.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4862*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmulh.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4863*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4864*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4865*9880d681SAndroid Build Coastguard Worker} 4866*9880d681SAndroid Build Coastguard Worker 4867*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmulh.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4868*9880d681SAndroid Build Coastguard Worker 4869*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmulh_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4870*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulh_w_256: 4871*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4872*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4873*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe5,0xd1] 4874*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe5,0xc1] 4875*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4876*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4877*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmulh.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4878*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmulh.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4879*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4880*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4881*9880d681SAndroid Build Coastguard Worker} 4882*9880d681SAndroid Build Coastguard Worker 4883*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 4884*9880d681SAndroid Build Coastguard Worker 4885*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmulhr_sw_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 4886*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulhr_sw_128: 4887*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4888*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4889*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x0b,0xd1] 4890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x0b,0xc1] 4891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 4892*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4893*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 4894*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 4895*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 4896*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 4897*9880d681SAndroid Build Coastguard Worker} 4898*9880d681SAndroid Build Coastguard Worker 4899*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 4900*9880d681SAndroid Build Coastguard Worker 4901*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmulhr_sw_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 4902*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmulhr_sw_256: 4903*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4904*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4905*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhrsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x0b,0xd1] 4906*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmulhrsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x0b,0xc1] 4907*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 4908*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4909*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 4910*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmul.hr.sw.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 4911*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 4912*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 4913*9880d681SAndroid Build Coastguard Worker} 4914*9880d681SAndroid Build Coastguard Worker 4915*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmov.wb.128(<8 x i16>, <16 x i8>, i8) 4916*9880d681SAndroid Build Coastguard Worker 4917*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmov_wb_128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) { 4918*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmov_wb_128: 4919*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4920*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4921*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x30,0xc1] 4922*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0x89,0x30,0xc2] 4923*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x08,0x30,0xc0] 4924*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 4925*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 4926*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4927*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 -1) 4928*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) 4929*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.128(<8 x i16> %x0, <16 x i8> zeroinitializer, i8 %x2) 4930*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 4931*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 4932*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 4933*9880d681SAndroid Build Coastguard Worker} 4934*9880d681SAndroid Build Coastguard Worker 4935*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmov.wb.mem.128(i8* %ptr, <8 x i16>, i8) 4936*9880d681SAndroid Build Coastguard Worker 4937*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmov_wb_mem_128(i8* %ptr, <8 x i16> %x1, i8 %x2) { 4938*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmov_wb_mem_128: 4939*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4940*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4941*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %xmm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x08,0x30,0x07] 4942*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x30,0x07] 4943*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4944*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmov.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 -1) 4945*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmov.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 %x2) 4946*9880d681SAndroid Build Coastguard Worker ret void 4947*9880d681SAndroid Build Coastguard Worker} 4948*9880d681SAndroid Build Coastguard Worker 4949*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.128(<8 x i16>, <16 x i8>, i8) 4950*9880d681SAndroid Build Coastguard Worker 4951*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmovs_wb_128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) { 4952*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovs_wb_128: 4953*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4954*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4955*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x20,0xc1] 4956*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0x89,0x20,0xc2] 4957*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x08,0x20,0xc0] 4958*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 4959*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 4960*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4961*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 -1) 4962*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) 4963*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.128(<8 x i16> %x0, <16 x i8> zeroinitializer, i8 %x2) 4964*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 4965*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 4966*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 4967*9880d681SAndroid Build Coastguard Worker} 4968*9880d681SAndroid Build Coastguard Worker 4969*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmovs.wb.mem.128(i8* %ptr, <8 x i16>, i8) 4970*9880d681SAndroid Build Coastguard Worker 4971*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmovs_wb_mem_128(i8* %ptr, <8 x i16> %x1, i8 %x2) { 4972*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovs_wb_mem_128: 4973*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4974*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %xmm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x08,0x20,0x07] 4975*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 4976*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x20,0x07] 4977*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4978*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovs.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 -1) 4979*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovs.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 %x2) 4980*9880d681SAndroid Build Coastguard Worker ret void 4981*9880d681SAndroid Build Coastguard Worker} 4982*9880d681SAndroid Build Coastguard Worker 4983*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.128(<8 x i16>, <16 x i8>, i8) 4984*9880d681SAndroid Build Coastguard Worker 4985*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmovus_wb_128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) { 4986*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovus_wb_128: 4987*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 4988*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 4989*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x10,0xc1] 4990*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0x89,0x10,0xc2] 4991*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x08,0x10,0xc0] 4992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 4993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 4994*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 4995*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 -1) 4996*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.128(<8 x i16> %x0, <16 x i8> %x1, i8 %x2) 4997*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.128(<8 x i16> %x0, <16 x i8> zeroinitializer, i8 %x2) 4998*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 4999*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 5000*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 5001*9880d681SAndroid Build Coastguard Worker} 5002*9880d681SAndroid Build Coastguard Worker 5003*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmovus.wb.mem.128(i8* %ptr, <8 x i16>, i8) 5004*9880d681SAndroid Build Coastguard Worker 5005*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmovus_wb_mem_128(i8* %ptr, <8 x i16> %x1, i8 %x2) { 5006*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovus_wb_mem_128: 5007*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5008*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %xmm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x08,0x10,0x07] 5009*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %xmm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x10,0x07] 5011*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5012*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovus.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 -1) 5013*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovus.wb.mem.128(i8* %ptr, <8 x i16> %x1, i8 %x2) 5014*9880d681SAndroid Build Coastguard Worker ret void 5015*9880d681SAndroid Build Coastguard Worker} 5016*9880d681SAndroid Build Coastguard Worker 5017*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmov.wb.256(<16 x i16>, <16 x i8>, i16) 5018*9880d681SAndroid Build Coastguard Worker 5019*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmov_wb_256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) { 5020*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmov_wb_256: 5021*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5022*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5023*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x30,0xc1] 5024*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %ymm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0xa9,0x30,0xc2] 5025*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %ymm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x28,0x30,0xc0] 5026*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 5027*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 5028*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5029*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 -1) 5030*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) 5031*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmov.wb.256(<16 x i16> %x0, <16 x i8> zeroinitializer, i16 %x2) 5032*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 5033*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 5034*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 5035*9880d681SAndroid Build Coastguard Worker} 5036*9880d681SAndroid Build Coastguard Worker 5037*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmov.wb.mem.256(i8* %ptr, <16 x i16>, i16) 5038*9880d681SAndroid Build Coastguard Worker 5039*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmov_wb_mem_256(i8* %ptr, <16 x i16> %x1, i16 %x2) { 5040*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmov_wb_mem_256: 5041*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5042*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5043*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %ymm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x28,0x30,0x07] 5044*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovwb %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x30,0x07] 5045*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5046*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmov.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 -1) 5047*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmov.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 %x2) 5048*9880d681SAndroid Build Coastguard Worker ret void 5049*9880d681SAndroid Build Coastguard Worker} 5050*9880d681SAndroid Build Coastguard Worker 5051*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.256(<16 x i16>, <16 x i8>, i16) 5052*9880d681SAndroid Build Coastguard Worker 5053*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmovs_wb_256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) { 5054*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovs_wb_256: 5055*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5056*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5057*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x20,0xc1] 5058*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %ymm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0xa9,0x20,0xc2] 5059*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %ymm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x28,0x20,0xc0] 5060*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 5061*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 5062*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5063*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 -1) 5064*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) 5065*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmovs.wb.256(<16 x i16> %x0, <16 x i8> zeroinitializer, i16 %x2) 5066*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 5067*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 5068*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 5069*9880d681SAndroid Build Coastguard Worker} 5070*9880d681SAndroid Build Coastguard Worker 5071*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmovs.wb.mem.256(i8* %ptr, <16 x i16>, i16) 5072*9880d681SAndroid Build Coastguard Worker 5073*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmovs_wb_mem_256(i8* %ptr, <16 x i16> %x1, i16 %x2) { 5074*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovs_wb_mem_256: 5075*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5076*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %ymm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x28,0x20,0x07] 5077*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5078*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovswb %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x20,0x07] 5079*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5080*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovs.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 -1) 5081*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovs.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 %x2) 5082*9880d681SAndroid Build Coastguard Worker ret void 5083*9880d681SAndroid Build Coastguard Worker} 5084*9880d681SAndroid Build Coastguard Worker 5085*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.256(<16 x i16>, <16 x i8>, i16) 5086*9880d681SAndroid Build Coastguard Worker 5087*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pmovus_wb_256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) { 5088*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovus_wb_256: 5089*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5090*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5091*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x10,0xc1] 5092*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %ymm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7e,0xa9,0x10,0xc2] 5093*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %ymm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x28,0x10,0xc0] 5094*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc1] 5095*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfc,0xc2] 5096*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5097*9880d681SAndroid Build Coastguard Worker %res0 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 -1) 5098*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.256(<16 x i16> %x0, <16 x i8> %x1, i16 %x2) 5099*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pmovus.wb.256(<16 x i16> %x0, <16 x i8> zeroinitializer, i16 %x2) 5100*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res0, %res1 5101*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res3, %res2 5102*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 5103*9880d681SAndroid Build Coastguard Worker} 5104*9880d681SAndroid Build Coastguard Worker 5105*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.avx512.mask.pmovus.wb.mem.256(i8* %ptr, <16 x i16>, i16) 5106*9880d681SAndroid Build Coastguard Worker 5107*9880d681SAndroid Build Coastguard Workerdefine void @test_int_x86_avx512_mask_pmovus_wb_mem_256(i8* %ptr, <16 x i16> %x1, i16 %x2) { 5108*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovus_wb_mem_256: 5109*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %ymm0, (%rdi) ## encoding: [0x62,0xf2,0x7e,0x28,0x10,0x07] 5111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovuswb %ymm0, (%rdi) {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x10,0x07] 5113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5114*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovus.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 -1) 5115*9880d681SAndroid Build Coastguard Worker call void @llvm.x86.avx512.mask.pmovus.wb.mem.256(i8* %ptr, <16 x i16> %x1, i16 %x2) 5116*9880d681SAndroid Build Coastguard Worker ret void 5117*9880d681SAndroid Build Coastguard Worker} 5118*9880d681SAndroid Build Coastguard Worker 5119*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.pmaddw.d.128(<8 x i16>, <8 x i16>, <4 x i32>, i8) 5120*9880d681SAndroid Build Coastguard Worker 5121*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_mask_pmaddw_d_128(<8 x i16> %x0, <8 x i16> %x1, <4 x i32> %x2, i8 %x3) { 5122*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaddw_d_128: 5123*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddwd %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xf5,0xd1] 5126*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf5,0xc1] 5127*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfe,0xc0] 5128*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5129*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.pmaddw.d.128(<8 x i16> %x0, <8 x i16> %x1, <4 x i32> %x2, i8 %x3) 5130*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.pmaddw.d.128(<8 x i16> %x0, <8 x i16> %x1, <4 x i32> %x2, i8 -1) 5131*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i32> %res, %res1 5132*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res2 5133*9880d681SAndroid Build Coastguard Worker} 5134*9880d681SAndroid Build Coastguard Worker 5135*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.pmaddw.d.256(<16 x i16>, <16 x i16>, <8 x i32>, i8) 5136*9880d681SAndroid Build Coastguard Worker 5137*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_mask_pmaddw_d_256(<16 x i16> %x0, <16 x i16> %x1, <8 x i32> %x2, i8 %x3) { 5138*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaddw_d_256: 5139*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddwd %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xf5,0xd1] 5142*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddwd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf5,0xc1] 5143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfe,0xc0] 5144*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5145*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.pmaddw.d.256(<16 x i16> %x0, <16 x i16> %x1, <8 x i32> %x2, i8 %x3) 5146*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.pmaddw.d.256(<16 x i16> %x0, <16 x i16> %x1, <8 x i32> %x2, i8 -1) 5147*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i32> %res, %res1 5148*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res2 5149*9880d681SAndroid Build Coastguard Worker} 5150*9880d681SAndroid Build Coastguard Worker 5151*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmaddubs.w.128(<16 x i8>, <16 x i8>, <8 x i16>, i8) 5152*9880d681SAndroid Build Coastguard Worker 5153*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmaddubs_w_128(<16 x i8> %x0, <16 x i8> %x1, <8 x i16> %x2, i8 %x3) { 5154*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaddubs_w_128: 5155*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5157*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x04,0xd1] 5158*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x04,0xc1] 5159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 5160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5161*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmaddubs.w.128(<16 x i8> %x0, <16 x i8> %x1, <8 x i16> %x2, i8 %x3) 5162*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmaddubs.w.128(<16 x i8> %x0, <16 x i8> %x1, <8 x i16> %x2, i8 -1) 5163*9880d681SAndroid Build Coastguard Worker %res2 = add <8 x i16> %res, %res1 5164*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res2 5165*9880d681SAndroid Build Coastguard Worker} 5166*9880d681SAndroid Build Coastguard Worker 5167*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmaddubs.w.256(<32 x i8>, <32 x i8>, <16 x i16>, i16) 5168*9880d681SAndroid Build Coastguard Worker 5169*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmaddubs_w_256(<32 x i8> %x0, <32 x i8> %x1, <16 x i16> %x2, i16 %x3) { 5170*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmaddubs_w_256: 5171*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddubsw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x04,0xd1] 5174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmaddubsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x04,0xc1] 5175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 5176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5177*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmaddubs.w.256(<32 x i8> %x0, <32 x i8> %x1, <16 x i16> %x2, i16 %x3) 5178*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmaddubs.w.256(<32 x i8> %x0, <32 x i8> %x1, <16 x i16> %x2, i16 -1) 5179*9880d681SAndroid Build Coastguard Worker %res2 = add <16 x i16> %res, %res1 5180*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res2 5181*9880d681SAndroid Build Coastguard Worker} 5182*9880d681SAndroid Build Coastguard Worker 5183*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.dbpsadbw.128(<16 x i8>, <16 x i8>, i32, <8 x i16>, i8) 5184*9880d681SAndroid Build Coastguard Worker 5185*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_dbpsadbw_128(<16 x i8> %x0, <16 x i8> %x1, <8 x i16> %x3, i8 %x4) { 5186*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_dbpsadbw_128: 5187*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5188*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5189*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x42,0xd1,0x02] 5190*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf3,0x7d,0x89,0x42,0xd9,0x02] 5191*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x42,0xc1,0x02] 5192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xfd,0xc1] 5194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5195*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.dbpsadbw.128(<16 x i8> %x0, <16 x i8> %x1, i32 2, <8 x i16> %x3, i8 %x4) 5196*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.dbpsadbw.128(<16 x i8> %x0, <16 x i8> %x1, i32 2, <8 x i16> zeroinitializer, i8 %x4) 5197*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.dbpsadbw.128(<16 x i8> %x0, <16 x i8> %x1, i32 2, <8 x i16> %x3, i8 -1) 5198*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5199*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res2, %res3 5200*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5201*9880d681SAndroid Build Coastguard Worker} 5202*9880d681SAndroid Build Coastguard Worker 5203*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.dbpsadbw.256(<32 x i8>, <32 x i8>, i32, <16 x i16>, i16) 5204*9880d681SAndroid Build Coastguard Worker 5205*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_dbpsadbw_256(<32 x i8> %x0, <32 x i8> %x1, <16 x i16> %x3, i16 %x4) { 5206*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_dbpsadbw_256: 5207*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5208*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5209*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x42,0xd1,0x02] 5210*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %ymm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf3,0x7d,0xa9,0x42,0xd9,0x02] 5211*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vdbpsadbw $2, %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0x7d,0x28,0x42,0xc1,0x02] 5212*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5213*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5215*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.dbpsadbw.256(<32 x i8> %x0, <32 x i8> %x1, i32 2, <16 x i16> %x3, i16 %x4) 5216*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.dbpsadbw.256(<32 x i8> %x0, <32 x i8> %x1, i32 2, <16 x i16> zeroinitializer, i16 %x4) 5217*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.dbpsadbw.256(<32 x i8> %x0, <32 x i8> %x1, i32 2, <16 x i16> %x3, i16 -1) 5218*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5219*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5220*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5221*9880d681SAndroid Build Coastguard Worker} 5222*9880d681SAndroid Build Coastguard Worker 5223*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.cvtb2mask.128(<16 x i8>) 5224*9880d681SAndroid Build Coastguard Worker 5225*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_cvtb2mask_128(<16 x i8> %x0) { 5226*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtb2mask_128: 5227*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovb2m %xmm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x08,0x29,0xc0] 5229*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5230*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5231*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5232*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.cvtb2mask.128(<16 x i8> %x0) 5233*9880d681SAndroid Build Coastguard Worker ret i16 %res 5234*9880d681SAndroid Build Coastguard Worker} 5235*9880d681SAndroid Build Coastguard Worker 5236*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx512.cvtb2mask.256(<32 x i8>) 5237*9880d681SAndroid Build Coastguard Worker 5238*9880d681SAndroid Build Coastguard Workerdefine i32@test_int_x86_avx512_cvtb2mask_256(<32 x i8> %x0) { 5239*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtb2mask_256: 5240*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovb2m %ymm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x28,0x29,0xc0] 5242*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 5243*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5244*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.x86.avx512.cvtb2mask.256(<32 x i8> %x0) 5245*9880d681SAndroid Build Coastguard Worker ret i32 %res 5246*9880d681SAndroid Build Coastguard Worker} 5247*9880d681SAndroid Build Coastguard Worker 5248*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.cvtw2mask.128(<8 x i16>) 5249*9880d681SAndroid Build Coastguard Worker 5250*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_cvtw2mask_128(<8 x i16> %x0) { 5251*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtw2mask_128: 5252*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5253*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovw2m %xmm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x08,0x29,0xc0] 5254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 5256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5257*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.cvtw2mask.128(<8 x i16> %x0) 5258*9880d681SAndroid Build Coastguard Worker ret i8 %res 5259*9880d681SAndroid Build Coastguard Worker} 5260*9880d681SAndroid Build Coastguard Worker 5261*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.cvtw2mask.256(<16 x i16>) 5262*9880d681SAndroid Build Coastguard Worker 5263*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_cvtw2mask_256(<16 x i16> %x0) { 5264*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtw2mask_256: 5265*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovw2m %ymm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x28,0x29,0xc0] 5267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5269*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5270*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.cvtw2mask.256(<16 x i16> %x0) 5271*9880d681SAndroid Build Coastguard Worker ret i16 %res 5272*9880d681SAndroid Build Coastguard Worker} 5273*9880d681SAndroid Build Coastguard Worker 5274*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.cvtmask2b.128(i16) 5275*9880d681SAndroid Build Coastguard Worker 5276*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_cvtmask2b_128(i16 %x0) { 5277*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2b_128: 5278*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k0 ## encoding: [0xc5,0xf8,0x92,0xc7] 5280*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2b %k0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x08,0x28,0xc0] 5281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5282*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.cvtmask2b.128(i16 %x0) 5283*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 5284*9880d681SAndroid Build Coastguard Worker} 5285*9880d681SAndroid Build Coastguard Worker 5286*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.cvtmask2b.256(i32) 5287*9880d681SAndroid Build Coastguard Worker 5288*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_cvtmask2b_256(i32 %x0) { 5289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2b_256: 5290*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k0 ## encoding: [0xc5,0xfb,0x92,0xc7] 5292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2b %k0, %ymm0 ## encoding: [0x62,0xf2,0x7e,0x28,0x28,0xc0] 5293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5294*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.cvtmask2b.256(i32 %x0) 5295*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res 5296*9880d681SAndroid Build Coastguard Worker} 5297*9880d681SAndroid Build Coastguard Worker 5298*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.cvtmask2w.128(i8) 5299*9880d681SAndroid Build Coastguard Worker 5300*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_cvtmask2w_128(i8 %x0) { 5301*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2w_128: 5302*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k0 ## encoding: [0xc5,0xf8,0x92,0xc7] 5304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2w %k0, %xmm0 ## encoding: [0x62,0xf2,0xfe,0x08,0x28,0xc0] 5305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5306*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.cvtmask2w.128(i8 %x0) 5307*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 5308*9880d681SAndroid Build Coastguard Worker} 5309*9880d681SAndroid Build Coastguard Worker 5310*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.cvtmask2w.256(i16) 5311*9880d681SAndroid Build Coastguard Worker 5312*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_cvtmask2w_256(i16 %x0) { 5313*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2w_256: 5314*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5315*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k0 ## encoding: [0xc5,0xf8,0x92,0xc7] 5316*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2w %k0, %ymm0 ## encoding: [0x62,0xf2,0xfe,0x28,0x28,0xc0] 5317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5318*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.cvtmask2w.256(i16 %x0) 5319*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res 5320*9880d681SAndroid Build Coastguard Worker} 5321*9880d681SAndroid Build Coastguard Worker 5322*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psrl.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5323*9880d681SAndroid Build Coastguard Worker 5324*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psrl_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5325*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrl_w_128: 5326*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5328*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xd1,0xd1] 5329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xd1,0xd9] 5330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd1,0xc1] 5331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 5332*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfd,0xc0] 5333*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5334*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psrl.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5335*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psrl.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5336*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psrl.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5337*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5338*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res2, %res3 5339*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5340*9880d681SAndroid Build Coastguard Worker} 5341*9880d681SAndroid Build Coastguard Worker 5342*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psrl.w.256(<16 x i16>, <8 x i16>, <16 x i16>, i16) 5343*9880d681SAndroid Build Coastguard Worker 5344*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psrl_w_256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5345*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrl_w_256: 5346*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5347*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5348*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xd1,0xd1] 5349*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xd1,0xd9] 5350*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd1,0xc1] 5351*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 5352*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfd,0xc3] 5353*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5354*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psrl.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) 5355*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psrl.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 -1) 5356*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psrl.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5357*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5358*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5359*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5360*9880d681SAndroid Build Coastguard Worker} 5361*9880d681SAndroid Build Coastguard Worker 5362*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psrl.wi.128(<8 x i16>, i32, <8 x i16>, i8) 5363*9880d681SAndroid Build Coastguard Worker 5364*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psrl_wi_128(<8 x i16> %x0, i32 %x1, <8 x i16> %x2, i8 %x3) { 5365*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrl_wi_128: 5366*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x09,0x71,0xd0,0x03] 5369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0x89,0x71,0xd0,0x03] 5370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xd0,0x03] 5371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5372*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 5373*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5374*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psrl.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 %x3) 5375*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psrl.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 -1) 5376*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psrl.wi.128(<8 x i16> %x0, i32 3, <8 x i16> zeroinitializer, i8 %x3) 5377*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5378*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res2, %res3 5379*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5380*9880d681SAndroid Build Coastguard Worker} 5381*9880d681SAndroid Build Coastguard Worker 5382*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psrl.wi.256(<16 x i16>, i32, <16 x i16>, i16) 5383*9880d681SAndroid Build Coastguard Worker 5384*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psrl_wi_256(<16 x i16> %x0, i32 %x1, <16 x i16> %x2, i16 %x3) { 5385*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrl_wi_256: 5386*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x29,0x71,0xd0,0x03] 5389*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %ymm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0xa9,0x71,0xd0,0x03] 5390*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlw $3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xd0,0x03] 5391*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5392*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm2, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xfd,0xc2] 5393*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5394*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psrl.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 %x3) 5395*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psrl.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 -1) 5396*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psrl.wi.256(<16 x i16> %x0, i32 3, <16 x i16> zeroinitializer, i16 %x3) 5397*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5398*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5399*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5400*9880d681SAndroid Build Coastguard Worker} 5401*9880d681SAndroid Build Coastguard Worker 5402*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psrlv16.hi(<16 x i16>, <16 x i16>, <16 x i16>, i16) 5403*9880d681SAndroid Build Coastguard Worker 5404*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psrlv16_hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5405*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrlv16_hi: 5406*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5407*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5408*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x10,0xd1] 5409*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %ymm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x10,0xd9] 5410*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x10,0xc1] 5411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5414*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psrlv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 5415*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psrlv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5416*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psrlv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 5417*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5418*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5419*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5420*9880d681SAndroid Build Coastguard Worker} 5421*9880d681SAndroid Build Coastguard Worker 5422*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psrlv8.hi(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5423*9880d681SAndroid Build Coastguard Worker 5424*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psrlv8_hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5425*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrlv8_hi: 5426*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5427*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5428*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x10,0xd1] 5429*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x10,0xd9] 5430*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsrlvw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x10,0xc1] 5431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5434*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psrlv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5435*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psrlv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5436*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psrlv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5437*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5438*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5439*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5440*9880d681SAndroid Build Coastguard Worker} 5441*9880d681SAndroid Build Coastguard Worker 5442*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psra.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5443*9880d681SAndroid Build Coastguard Worker 5444*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psra_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5445*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psra_w_128: 5446*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5447*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5448*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xe1,0xd1] 5449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xe1,0xd9] 5450*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe1,0xc1] 5451*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5454*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psra.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5455*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psra.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5456*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psra.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5457*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5458*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5459*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5460*9880d681SAndroid Build Coastguard Worker} 5461*9880d681SAndroid Build Coastguard Worker 5462*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psra.wi.128(<8 x i16>, i32, <8 x i16>, i8) 5463*9880d681SAndroid Build Coastguard Worker 5464*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psra_wi_128(<8 x i16> %x0, i32 %x1, <8 x i16> %x2, i8 %x3) { 5465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psra_wi_128: 5466*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5467*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x09,0x71,0xe0,0x03] 5469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0x89,0x71,0xe0,0x03] 5470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xe0,0x03] 5471*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xca] 5472*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5473*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5474*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psra.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 %x3) 5475*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psra.wi.128(<8 x i16> %x0, i32 3, <8 x i16> zeroinitializer, i8 %x3) 5476*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psra.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 -1) 5477*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5478*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5479*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5480*9880d681SAndroid Build Coastguard Worker} 5481*9880d681SAndroid Build Coastguard Worker 5482*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psra.w.256(<16 x i16>, <8 x i16>, <16 x i16>, i16) 5483*9880d681SAndroid Build Coastguard Worker 5484*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psra_w_256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5485*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psra_w_256: 5486*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5487*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5488*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xe1,0xd1] 5489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xe1,0xd9] 5490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe1,0xc1] 5491*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5492*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5493*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5494*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psra.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) 5495*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psra.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5496*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psra.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 -1) 5497*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5498*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5499*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5500*9880d681SAndroid Build Coastguard Worker} 5501*9880d681SAndroid Build Coastguard Worker 5502*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psra.wi.256(<16 x i16>, i32, <16 x i16>, i16) 5503*9880d681SAndroid Build Coastguard Worker 5504*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psra_wi_256(<16 x i16> %x0, i32 %x1, <16 x i16> %x2, i16 %x3) { 5505*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psra_wi_256: 5506*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5507*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5508*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x29,0x71,0xe0,0x03] 5509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %ymm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0xa9,0x71,0xe0,0x03] 5510*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsraw $3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xe0,0x03] 5511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xca] 5512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5514*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psra.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 %x3) 5515*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psra.wi.256(<16 x i16> %x0, i32 3, <16 x i16> zeroinitializer, i16 %x3) 5516*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psra.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 -1) 5517*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5518*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5519*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5520*9880d681SAndroid Build Coastguard Worker} 5521*9880d681SAndroid Build Coastguard Worker 5522*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psrav16.hi(<16 x i16>, <16 x i16>, <16 x i16>, i16) 5523*9880d681SAndroid Build Coastguard Worker 5524*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psrav16_hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5525*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrav16_hi: 5526*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5527*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5528*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x11,0xd1] 5529*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %ymm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x11,0xd9] 5530*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x11,0xc1] 5531*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5532*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5533*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5534*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psrav16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 5535*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psrav16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5536*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psrav16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 5537*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5538*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5539*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5540*9880d681SAndroid Build Coastguard Worker} 5541*9880d681SAndroid Build Coastguard Worker 5542*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psrav8.hi(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5543*9880d681SAndroid Build Coastguard Worker 5544*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psrav8_hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5545*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psrav8_hi: 5546*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5547*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5548*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x11,0xd1] 5549*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x11,0xd9] 5550*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsravw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x11,0xc1] 5551*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5552*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5554*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psrav8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5555*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psrav8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5556*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psrav8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5557*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5558*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5559*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5560*9880d681SAndroid Build Coastguard Worker} 5561*9880d681SAndroid Build Coastguard Worker 5562*9880d681SAndroid Build Coastguard Worker 5563*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psll.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5564*9880d681SAndroid Build Coastguard Worker 5565*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psll_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5566*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psll_w_128: 5567*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5568*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5569*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0xf1,0xd1] 5570*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0xf1,0xd9] 5571*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf1,0xc1] 5572*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5573*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5574*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5575*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psll.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5576*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psll.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5577*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psll.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5578*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5579*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5580*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5581*9880d681SAndroid Build Coastguard Worker} 5582*9880d681SAndroid Build Coastguard Worker 5583*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psll.w.256(<16 x i16>, <8 x i16>, <16 x i16>, i16) 5584*9880d681SAndroid Build Coastguard Worker 5585*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psll_w_256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5586*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psll_w_256: 5587*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5588*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5589*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0xf1,0xd1] 5590*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0xf1,0xd9] 5591*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf1,0xc1] 5592*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5593*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5594*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5595*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psll.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 %x3) 5596*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psll.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5597*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psll.w.256(<16 x i16> %x0, <8 x i16> %x1, <16 x i16> %x2, i16 -1) 5598*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5599*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5600*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5601*9880d681SAndroid Build Coastguard Worker} 5602*9880d681SAndroid Build Coastguard Worker 5603*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psll.wi.128(<8 x i16>, i32, <8 x i16>, i8) 5604*9880d681SAndroid Build Coastguard Worker 5605*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psll_wi_128(<8 x i16> %x0, i32 %x1, <8 x i16> %x2, i8 %x3) { 5606*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psll_wi_128: 5607*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5609*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x09,0x71,0xf0,0x03] 5610*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0x89,0x71,0xf0,0x03] 5611*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xf0,0x03] 5612*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xca] 5613*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5614*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5615*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psll.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 %x3) 5616*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psll.wi.128(<8 x i16> %x0, i32 3, <8 x i16> zeroinitializer, i8 %x3) 5617*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psll.wi.128(<8 x i16> %x0, i32 3, <8 x i16> %x2, i8 -1) 5618*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5619*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5620*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5621*9880d681SAndroid Build Coastguard Worker} 5622*9880d681SAndroid Build Coastguard Worker 5623*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psll.wi.256(<16 x i16>, i32, <16 x i16>, i16) 5624*9880d681SAndroid Build Coastguard Worker 5625*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psll_wi_256(<16 x i16> %x0, i32 %x1, <16 x i16> %x2, i16 %x3) { 5626*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psll_wi_256: 5627*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5628*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 5629*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x75,0x29,0x71,0xf0,0x03] 5630*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %ymm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf1,0x6d,0xa9,0x71,0xf0,0x03] 5631*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllw $3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xf0,0x03] 5632*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xca] 5633*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5634*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5635*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psll.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 %x3) 5636*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psll.wi.256(<16 x i16> %x0, i32 3, <16 x i16> zeroinitializer, i16 %x3) 5637*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psll.wi.256(<16 x i16> %x0, i32 3, <16 x i16> %x2, i16 -1) 5638*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5639*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5640*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5641*9880d681SAndroid Build Coastguard Worker} 5642*9880d681SAndroid Build Coastguard Worker 5643*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.psllv16.hi(<16 x i16>, <16 x i16>, <16 x i16>, i16) 5644*9880d681SAndroid Build Coastguard Worker 5645*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_psllv16_hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5646*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psllv16_hi: 5647*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5649*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x12,0xd1] 5650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %ymm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x12,0xd9] 5651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x12,0xc1] 5652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5653*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5654*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5655*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.psllv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 5656*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.psllv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5657*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.psllv16.hi(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 5658*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5659*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5660*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5661*9880d681SAndroid Build Coastguard Worker} 5662*9880d681SAndroid Build Coastguard Worker 5663*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.psllv8.hi(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5664*9880d681SAndroid Build Coastguard Worker 5665*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_psllv8_hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5666*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_psllv8_hi: 5667*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5669*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x12,0xd1] 5670*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x12,0xd9] 5671*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpsllvw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x12,0xc1] 5672*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5673*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5674*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5675*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.psllv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5676*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.psllv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5677*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.psllv8.hi(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5678*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5679*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5680*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5681*9880d681SAndroid Build Coastguard Worker} 5682*9880d681SAndroid Build Coastguard Worker 5683*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmovzxb.w.128(<16 x i8>, <8 x i16>, i8) 5684*9880d681SAndroid Build Coastguard Worker 5685*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmovzxb_w_128(<16 x i8> %x0, <8 x i16> %x1, i8 %x2) { 5686*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovzxb_w_128: 5687*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5688*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5689*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x30,0xc8] 5690*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm1 {%k1} = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero 5691*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x30,0xd0] 5692*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm2 {%k1} {z} = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero 5693*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x30,0xc0] 5694*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero 5695*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xca] 5696*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5697*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5698*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmovzxb.w.128(<16 x i8> %x0, <8 x i16> %x1, i8 %x2) 5699*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmovzxb.w.128(<16 x i8> %x0, <8 x i16> zeroinitializer, i8 %x2) 5700*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.pmovzxb.w.128(<16 x i8> %x0, <8 x i16> %x1, i8 -1) 5701*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5702*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5703*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5704*9880d681SAndroid Build Coastguard Worker} 5705*9880d681SAndroid Build Coastguard Worker 5706*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmovzxb.w.256(<16 x i8>, <16 x i16>, i16) 5707*9880d681SAndroid Build Coastguard Worker 5708*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmovzxb_w_256(<16 x i8> %x0, <16 x i16> %x1, i16 %x2) { 5709*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovzxb_w_256: 5710*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5711*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5712*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x30,0xc8] 5713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero 5714*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x30,0xd0] 5715*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} {z} = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero 5716*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovzxbw %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x30,0xc0] 5717*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero 5718*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xca] 5719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5721*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmovzxb.w.256(<16 x i8> %x0, <16 x i16> %x1, i16 %x2) 5722*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmovzxb.w.256(<16 x i8> %x0, <16 x i16> zeroinitializer, i16 %x2) 5723*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.pmovzxb.w.256(<16 x i8> %x0, <16 x i16> %x1, i16 -1) 5724*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5725*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5726*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5727*9880d681SAndroid Build Coastguard Worker} 5728*9880d681SAndroid Build Coastguard Worker 5729*9880d681SAndroid Build Coastguard Worker 5730*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pmovsxb.w.128(<16 x i8>, <8 x i16>, i8) 5731*9880d681SAndroid Build Coastguard Worker 5732*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pmovsxb_w_128(<16 x i8> %x0, <8 x i16> %x1, i8 %x2) { 5733*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovsxb_w_128: 5734*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5735*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5736*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x20,0xc8] 5737*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x20,0xd0] 5738*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x20,0xc0] 5739*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xca] 5740*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5741*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5742*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pmovsxb.w.128(<16 x i8> %x0, <8 x i16> %x1, i8 %x2) 5743*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pmovsxb.w.128(<16 x i8> %x0, <8 x i16> zeroinitializer, i8 %x2) 5744*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.pmovsxb.w.128(<16 x i8> %x0, <8 x i16> %x1, i8 -1) 5745*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5746*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5747*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5748*9880d681SAndroid Build Coastguard Worker} 5749*9880d681SAndroid Build Coastguard Worker 5750*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pmovsxb.w.256(<16 x i8>, <16 x i16>, i16) 5751*9880d681SAndroid Build Coastguard Worker 5752*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pmovsxb_w_256(<16 x i8> %x0, <16 x i16> %x1, i16 %x2) { 5753*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovsxb_w_256: 5754*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5756*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x20,0xc8] 5757*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x20,0xd0] 5758*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxbw %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x20,0xc0] 5759*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xca] 5760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5762*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pmovsxb.w.256(<16 x i8> %x0, <16 x i16> %x1, i16 %x2) 5763*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pmovsxb.w.256(<16 x i8> %x0, <16 x i16> zeroinitializer, i16 %x2) 5764*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.pmovsxb.w.256(<16 x i8> %x0, <16 x i16> %x1, i16 -1) 5765*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5766*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5767*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5768*9880d681SAndroid Build Coastguard Worker} 5769*9880d681SAndroid Build Coastguard Worker 5770*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.pmovsxd.q.128(<4 x i32>, <2 x i64>, i8) 5771*9880d681SAndroid Build Coastguard Worker 5772*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_pmovsxd_q_128(<4 x i32> %x0, <2 x i64> %x1, i8 %x2) { 5773*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovsxd_q_128: 5774*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5775*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5776*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x25,0xc8] 5777*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x25,0xd0] 5778*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x25,0xc0] 5779*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xca] 5780*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 5781*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5782*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmovsxd.q.128(<4 x i32> %x0, <2 x i64> %x1, i8 %x2) 5783*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.pmovsxd.q.128(<4 x i32> %x0, <2 x i64> zeroinitializer, i8 %x2) 5784*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x i64> @llvm.x86.avx512.mask.pmovsxd.q.128(<4 x i32> %x0, <2 x i64> %x1, i8 -1) 5785*9880d681SAndroid Build Coastguard Worker %res3 = add <2 x i64> %res, %res1 5786*9880d681SAndroid Build Coastguard Worker %res4 = add <2 x i64> %res3, %res2 5787*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res4 5788*9880d681SAndroid Build Coastguard Worker} 5789*9880d681SAndroid Build Coastguard Worker 5790*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.pmovsxd.q.256(<4 x i32>, <4 x i64>, i8) 5791*9880d681SAndroid Build Coastguard Worker 5792*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_pmovsxd_q_256(<4 x i32> %x0, <4 x i64> %x1, i8 %x2) { 5793*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pmovsxd_q_256: 5794*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x25,0xc8] 5797*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x25,0xd0] 5798*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovsxdq %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x25,0xc0] 5799*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xca] 5800*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 5801*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5802*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmovsxd.q.256(<4 x i32> %x0, <4 x i64> %x1, i8 %x2) 5803*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.pmovsxd.q.256(<4 x i32> %x0, <4 x i64> zeroinitializer, i8 %x2) 5804*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.pmovsxd.q.256(<4 x i32> %x0, <4 x i64> %x1, i8 -1) 5805*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i64> %res, %res1 5806*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res3, %res2 5807*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 5808*9880d681SAndroid Build Coastguard Worker} 5809*9880d681SAndroid Build Coastguard Worker 5810*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.permvar.hi.128(<8 x i16>, <8 x i16>, <8 x i16>, i8) 5811*9880d681SAndroid Build Coastguard Worker 5812*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_permvar_hi_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) { 5813*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_permvar_hi_128: 5814*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5815*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5816*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %xmm0, %xmm1, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xf5,0x09,0x8d,0xd0] 5817*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %xmm0, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0x89,0x8d,0xd8] 5818*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0xf5,0x08,0x8d,0xc0] 5819*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm3, %xmm2, %xmm1 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xcb] 5820*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 5821*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5822*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.permvar.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) 5823*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.permvar.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> zeroinitializer, i8 %x3) 5824*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.permvar.hi.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1) 5825*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 5826*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res3, %res2 5827*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 5828*9880d681SAndroid Build Coastguard Worker} 5829*9880d681SAndroid Build Coastguard Worker 5830*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.permvar.hi.256(<16 x i16>, <16 x i16>, <16 x i16>, i16) 5831*9880d681SAndroid Build Coastguard Worker 5832*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_permvar_hi_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) { 5833*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_permvar_hi_256: 5834*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5835*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5836*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %ymm0, %ymm1, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xf5,0x29,0x8d,0xd0] 5837*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %ymm0, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xf5,0xa9,0x8d,0xd8] 5838*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpermw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0xf5,0x28,0x8d,0xc0] 5839*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm3, %ymm2, %ymm1 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xcb] 5840*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 5841*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5842*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.permvar.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) 5843*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.permvar.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> zeroinitializer, i16 %x3) 5844*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.permvar.hi.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1) 5845*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 5846*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res3, %res2 5847*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 5848*9880d681SAndroid Build Coastguard Worker} 5849*9880d681SAndroid Build Coastguard Worker 5850*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.ptestm.b.128(<16 x i8>, <16 x i8>, i16) 5851*9880d681SAndroid Build Coastguard Worker 5852*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_ptestm_b_128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) { 5853*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestm_b_128: 5854*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5855*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5856*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x26,0xc1] 5857*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0x7d,0x08,0x26,0xc1] 5859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5861*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5862*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5863*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.ptestm.b.128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) 5864*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.ptestm.b.128(<16 x i8> %x0, <16 x i8> %x1, i16-1) 5865*9880d681SAndroid Build Coastguard Worker %res2 = add i16 %res, %res1 5866*9880d681SAndroid Build Coastguard Worker ret i16 %res2 5867*9880d681SAndroid Build Coastguard Worker} 5868*9880d681SAndroid Build Coastguard Worker 5869*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx512.ptestm.b.256(<32 x i8>, <32 x i8>, i32) 5870*9880d681SAndroid Build Coastguard Worker 5871*9880d681SAndroid Build Coastguard Workerdefine i32@test_int_x86_avx512_ptestm_b_256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) { 5872*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestm_b_256: 5873*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5874*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 5875*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x26,0xc1] 5876*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 5877*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0x7d,0x28,0x26,0xc1] 5878*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 5879*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5880*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5881*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.x86.avx512.ptestm.b.256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) 5882*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.ptestm.b.256(<32 x i8> %x0, <32 x i8> %x1, i32-1) 5883*9880d681SAndroid Build Coastguard Worker %res2 = add i32 %res, %res1 5884*9880d681SAndroid Build Coastguard Worker ret i32 %res2 5885*9880d681SAndroid Build Coastguard Worker} 5886*9880d681SAndroid Build Coastguard Worker 5887*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.ptestm.w.128(<8 x i16>, <8 x i16>, i8) 5888*9880d681SAndroid Build Coastguard Worker 5889*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_ptestm_w_128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) { 5890*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestm_w_128: 5891*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5892*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5893*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x26,0xc1] 5894*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5895*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x08,0x26,0xc1] 5896*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5897*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 5898*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 5899*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5900*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.ptestm.w.128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) 5901*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.ptestm.w.128(<8 x i16> %x0, <8 x i16> %x1, i8-1) 5902*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 5903*9880d681SAndroid Build Coastguard Worker ret i8 %res2 5904*9880d681SAndroid Build Coastguard Worker} 5905*9880d681SAndroid Build Coastguard Worker 5906*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.ptestm.w.256(<16 x i16>, <16 x i16>, i16) 5907*9880d681SAndroid Build Coastguard Worker 5908*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_ptestm_w_256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) { 5909*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestm_w_256: 5910*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5911*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5912*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmw %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x26,0xc1] 5913*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5914*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestmw %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0xfd,0x28,0x26,0xc1] 5915*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5916*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5917*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5918*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5919*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.ptestm.w.256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) 5920*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.ptestm.w.256(<16 x i16> %x0, <16 x i16> %x1, i16-1) 5921*9880d681SAndroid Build Coastguard Worker %res2 = add i16 %res, %res1 5922*9880d681SAndroid Build Coastguard Worker ret i16 %res2 5923*9880d681SAndroid Build Coastguard Worker} 5924*9880d681SAndroid Build Coastguard Worker 5925*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.ptestnm.b.128(<16 x i8>, <16 x i8>, i16) 5926*9880d681SAndroid Build Coastguard Worker 5927*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_ptestnm_b_128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) { 5928*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestnm_b_128: 5929*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5930*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5931*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmb %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0x7e,0x09,0x26,0xc1] 5932*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5933*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmb %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x08,0x26,0xc1] 5934*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5935*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5936*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5937*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5938*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.ptestnm.b.128(<16 x i8> %x0, <16 x i8> %x1, i16 %x2) 5939*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.ptestnm.b.128(<16 x i8> %x0, <16 x i8> %x1, i16-1) 5940*9880d681SAndroid Build Coastguard Worker %res2 = add i16 %res, %res1 5941*9880d681SAndroid Build Coastguard Worker ret i16 %res2 5942*9880d681SAndroid Build Coastguard Worker} 5943*9880d681SAndroid Build Coastguard Worker 5944*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx512.ptestnm.b.256(<32 x i8>, <32 x i8>, i32) 5945*9880d681SAndroid Build Coastguard Worker 5946*9880d681SAndroid Build Coastguard Workerdefine i32@test_int_x86_avx512_ptestnm_b_256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) { 5947*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestnm_b_256: 5948*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5949*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf] 5950*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmb %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0x7e,0x29,0x26,0xc1] 5951*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %ecx ## encoding: [0xc5,0xfb,0x93,0xc8] 5952*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmb %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x28,0x26,0xc1] 5953*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %k0, %eax ## encoding: [0xc5,0xfb,0x93,0xc0] 5954*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5955*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5956*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.x86.avx512.ptestnm.b.256(<32 x i8> %x0, <32 x i8> %x1, i32 %x2) 5957*9880d681SAndroid Build Coastguard Worker %res1 = call i32 @llvm.x86.avx512.ptestnm.b.256(<32 x i8> %x0, <32 x i8> %x1, i32-1) 5958*9880d681SAndroid Build Coastguard Worker %res2 = add i32 %res, %res1 5959*9880d681SAndroid Build Coastguard Worker ret i32 %res2 5960*9880d681SAndroid Build Coastguard Worker} 5961*9880d681SAndroid Build Coastguard Worker 5962*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.ptestnm.w.128(<8 x i16>, <8 x i16>, i8 %x2) 5963*9880d681SAndroid Build Coastguard Worker 5964*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_ptestnm_w_128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) { 5965*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestnm_w_128: 5966*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5967*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5968*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmw %xmm1, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfe,0x09,0x26,0xc1] 5969*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5970*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmw %xmm1, %xmm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x08,0x26,0xc1] 5971*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5972*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 5973*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 5974*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5975*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.ptestnm.w.128(<8 x i16> %x0, <8 x i16> %x1, i8 %x2) 5976*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.ptestnm.w.128(<8 x i16> %x0, <8 x i16> %x1, i8-1) 5977*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 5978*9880d681SAndroid Build Coastguard Worker ret i8 %res2 5979*9880d681SAndroid Build Coastguard Worker} 5980*9880d681SAndroid Build Coastguard Worker 5981*9880d681SAndroid Build Coastguard Workerdeclare i16 @llvm.x86.avx512.ptestnm.w.256(<16 x i16>, <16 x i16>, i16 %x2) 5982*9880d681SAndroid Build Coastguard Worker 5983*9880d681SAndroid Build Coastguard Workerdefine i16@test_int_x86_avx512_ptestnm_w_256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) { 5984*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_ptestnm_w_256: 5985*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 5986*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 5987*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmw %ymm1, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf2,0xfe,0x29,0x26,0xc1] 5988*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %ecx ## encoding: [0xc5,0xf8,0x93,0xc8] 5989*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vptestnmw %ymm1, %ymm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x28,0x26,0xc1] 5990*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %k0, %eax ## encoding: [0xc5,0xf8,0x93,0xc0] 5991*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addl %ecx, %eax ## encoding: [0x01,0xc8] 5992*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> 5993*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 5994*9880d681SAndroid Build Coastguard Worker %res = call i16 @llvm.x86.avx512.ptestnm.w.256(<16 x i16> %x0, <16 x i16> %x1, i16 %x2) 5995*9880d681SAndroid Build Coastguard Worker %res1 = call i16 @llvm.x86.avx512.ptestnm.w.256(<16 x i16> %x0, <16 x i16> %x1, i16-1) 5996*9880d681SAndroid Build Coastguard Worker %res2 = add i16 %res, %res1 5997*9880d681SAndroid Build Coastguard Worker ret i16 %res2 5998*9880d681SAndroid Build Coastguard Worker} 5999*9880d681SAndroid Build Coastguard Worker 6000*9880d681SAndroid Build Coastguard Workerdeclare <32 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.256(i8, <32 x i8>, i32) 6001*9880d681SAndroid Build Coastguard Worker 6002*9880d681SAndroid Build Coastguard Workerdefine <32 x i8>@test_int_x86_avx512_mask_pbroadcast_b_gpr_256(i8 %x0, <32 x i8> %x1, i32 %mask) { 6003*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pbroadcast_b_gpr_256: 6004*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 6005*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovd %esi, %k1 ## encoding: [0xc5,0xfb,0x92,0xce] 6006*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x7a,0xc7] 6007*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %ymm1 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x7a,0xcf] 6008*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %ymm2 ## encoding: [0x62,0xf2,0x7d,0x28,0x7a,0xd7] 6009*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0] 6010*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfc,0xc0] 6011*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 6012*9880d681SAndroid Build Coastguard Worker %res = call <32 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.256(i8 %x0, <32 x i8> %x1, i32 -1) 6013*9880d681SAndroid Build Coastguard Worker %res1 = call <32 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.256(i8 %x0, <32 x i8> %x1, i32 %mask) 6014*9880d681SAndroid Build Coastguard Worker %res2 = call <32 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.256(i8 %x0, <32 x i8> zeroinitializer, i32 %mask) 6015*9880d681SAndroid Build Coastguard Worker %res3 = add <32 x i8> %res, %res1 6016*9880d681SAndroid Build Coastguard Worker %res4 = add <32 x i8> %res2, %res3 6017*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %res4 6018*9880d681SAndroid Build Coastguard Worker} 6019*9880d681SAndroid Build Coastguard Worker 6020*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.128(i8, <16 x i8>, i16) 6021*9880d681SAndroid Build Coastguard Worker 6022*9880d681SAndroid Build Coastguard Workerdefine <16 x i8>@test_int_x86_avx512_mask_pbroadcast_b_gpr_128(i8 %x0, <16 x i8> %x1, i16 %mask) { 6023*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pbroadcast_b_gpr_128: 6024*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 6025*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 6026*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x7a,0xc7] 6027*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %xmm1 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x7a,0xcf] 6028*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastb %dil, %xmm2 ## encoding: [0x62,0xf2,0x7d,0x08,0x7a,0xd7] 6029*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0] 6030*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddb %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfc,0xc0] 6031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 6032*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.128(i8 %x0, <16 x i8> %x1, i16 -1) 6033*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.128(i8 %x0, <16 x i8> %x1, i16 %mask) 6034*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i8> @llvm.x86.avx512.mask.pbroadcast.b.gpr.128(i8 %x0, <16 x i8> zeroinitializer, i16 %mask) 6035*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i8> %res, %res1 6036*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i8> %res2, %res3 6037*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res4 6038*9880d681SAndroid Build Coastguard Worker} 6039*9880d681SAndroid Build Coastguard Worker 6040*9880d681SAndroid Build Coastguard Workerdeclare <16 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.256(i16, <16 x i16>, i16) 6041*9880d681SAndroid Build Coastguard Worker 6042*9880d681SAndroid Build Coastguard Workerdefine <16 x i16>@test_int_x86_avx512_mask_pbroadcast_w_gpr_256(i16 %x0, <16 x i16> %x1, i16 %mask) { 6043*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pbroadcast_w_gpr_256: 6044*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 6045*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 6046*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x7b,0xc7] 6047*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %ymm1 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x7b,0xcf] 6048*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %ymm2 ## encoding: [0x62,0xf2,0x7d,0x28,0x7b,0xd7] 6049*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfd,0xc0] 6050*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfd,0xc0] 6051*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 6052*9880d681SAndroid Build Coastguard Worker %res = call <16 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.256(i16 %x0, <16 x i16> %x1, i16 -1) 6053*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.256(i16 %x0, <16 x i16> %x1, i16 %mask) 6054*9880d681SAndroid Build Coastguard Worker %res2 = call <16 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.256(i16 %x0, <16 x i16> zeroinitializer, i16 %mask) 6055*9880d681SAndroid Build Coastguard Worker %res3 = add <16 x i16> %res, %res1 6056*9880d681SAndroid Build Coastguard Worker %res4 = add <16 x i16> %res2, %res3 6057*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %res4 6058*9880d681SAndroid Build Coastguard Worker} 6059*9880d681SAndroid Build Coastguard Worker 6060*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.128(i16, <8 x i16>, i8) 6061*9880d681SAndroid Build Coastguard Worker 6062*9880d681SAndroid Build Coastguard Workerdefine <8 x i16>@test_int_x86_avx512_mask_pbroadcast_w_gpr_128(i16 %x0, <8 x i16> %x1, i8 %mask) { 6063*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_pbroadcast_w_gpr_128: 6064*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 6065*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 6066*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x7b,0xc7] 6067*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %xmm1 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x7b,0xcf] 6068*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpbroadcastw %di, %xmm2 ## encoding: [0x62,0xf2,0x7d,0x08,0x7b,0xd7] 6069*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfd,0xc0] 6070*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfd,0xc0] 6071*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 6072*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.128(i16 %x0, <8 x i16> %x1, i8 -1) 6073*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.128(i16 %x0, <8 x i16> %x1, i8 %mask) 6074*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i16> @llvm.x86.avx512.mask.pbroadcast.w.gpr.128(i16 %x0, <8 x i16> zeroinitializer, i8 %mask) 6075*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i16> %res, %res1 6076*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i16> %res2, %res3 6077*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res4 6078*9880d681SAndroid Build Coastguard Worker} 6079