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=+avx512dq -mattr=+avx512vl --show-mc-encoding| FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rr_512(<8 x i64> %a, <8 x i64> %b) { 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rr_512: 6*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf2,0xfd,0x48,0x40,0xc1] 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 9*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 -1) 10*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rrk_512(<8 x i64> %a, <8 x i64> %b, <8 x i64> %passThru, i8 %mask) { 14*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrk_512: 15*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x49,0x40,0xd1] 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 20*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> %passThru, i8 %mask) 21*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rrkz_512(<8 x i64> %a, <8 x i64> %b, i8 %mask) { 25*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrkz_512: 26*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 27*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xc9,0x40,0xc1] 29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 30*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 %mask) 31*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rm_512(<8 x i64> %a, <8 x i64>* %ptr_b) { 35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rm_512: 36*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 37*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf2,0xfd,0x48,0x40,0x07] 38*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 39*9880d681SAndroid Build Coastguard Worker %b = load <8 x i64>, <8 x i64>* %ptr_b 40*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 -1) 41*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 42*9880d681SAndroid Build Coastguard Worker} 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rmk_512(<8 x i64> %a, <8 x i64>* %ptr_b, <8 x i64> %passThru, i8 %mask) { 45*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmk_512: 46*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 47*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 48*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x49,0x40,0x0f] 49*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 51*9880d681SAndroid Build Coastguard Worker %b = load <8 x i64>, <8 x i64>* %ptr_b 52*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> %passThru, i8 %mask) 53*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rmkz_512(<8 x i64> %a, <8 x i64>* %ptr_b, i8 %mask) { 57*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmkz_512: 58*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 59*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xc9,0x40,0x07] 61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 62*9880d681SAndroid Build Coastguard Worker %b = load <8 x i64>, <8 x i64>* %ptr_b 63*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 %mask) 64*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rmb_512(<8 x i64> %a, i64* %ptr_b) { 68*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmb_512: 69*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to8}, %zmm0, %zmm0 ## encoding: [0x62,0xf2,0xfd,0x58,0x40,0x07] 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 72*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 73*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i64> undef, i64 %q, i32 0 74*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i64> %vecinit.i, <8 x i64> undef, <8 x i32> zeroinitializer 75*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 -1) 76*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 77*9880d681SAndroid Build Coastguard Worker} 78*9880d681SAndroid Build Coastguard Worker 79*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rmbk_512(<8 x i64> %a, i64* %ptr_b, <8 x i64> %passThru, i8 %mask) { 80*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbk_512: 81*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 82*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 83*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to8}, %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x59,0x40,0x0f] 84*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 85*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 86*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 87*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i64> undef, i64 %q, i32 0 88*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i64> %vecinit.i, <8 x i64> undef, <8 x i32> zeroinitializer 89*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> %passThru, i8 %mask) 90*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_mask_mullo_epi64_rmbkz_512(<8 x i64> %a, i64* %ptr_b, i8 %mask) { 94*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbkz_512: 95*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 96*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 97*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to8}, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xd9,0x40,0x07] 98*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 99*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 100*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x i64> undef, i64 %q, i32 0 101*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x i64> %vecinit.i, <8 x i64> undef, <8 x i32> zeroinitializer 102*9880d681SAndroid Build Coastguard Worker %res = call <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64> %a, <8 x i64> %b, <8 x i64> zeroinitializer, i8 %mask) 103*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %res 104*9880d681SAndroid Build Coastguard Worker} 105*9880d681SAndroid Build Coastguard Workerdeclare <8 x i64> @llvm.x86.avx512.mask.pmull.q.512(<8 x i64>, <8 x i64>, <8 x i64>, i8) 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rr_256(<4 x i64> %a, <4 x i64> %b) { 108*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rr_256: 109*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x40,0xc1] 111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 112*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 113*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 114*9880d681SAndroid Build Coastguard Worker} 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rrk_256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) { 117*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrk_256: 118*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 119*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x40,0xd1] 121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 123*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 124*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 125*9880d681SAndroid Build Coastguard Worker} 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rrkz_256(<4 x i64> %a, <4 x i64> %b, i8 %mask) { 128*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrkz_256: 129*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 130*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x40,0xc1] 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 133*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 134*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rm_256(<4 x i64> %a, <4 x i64>* %ptr_b) { 138*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rm_256: 139*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x40,0x07] 141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 142*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 143*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 144*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 145*9880d681SAndroid Build Coastguard Worker} 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rmk_256(<4 x i64> %a, <4 x i64>* %ptr_b, <4 x i64> %passThru, i8 %mask) { 148*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmk_256: 149*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x40,0x0f] 152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 154*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 155*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 156*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 157*9880d681SAndroid Build Coastguard Worker} 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rmkz_256(<4 x i64> %a, <4 x i64>* %ptr_b, i8 %mask) { 160*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmkz_256: 161*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 163*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x40,0x07] 164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 165*9880d681SAndroid Build Coastguard Worker %b = load <4 x i64>, <4 x i64>* %ptr_b 166*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 167*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 168*9880d681SAndroid Build Coastguard Worker} 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rmb_256(<4 x i64> %a, i64* %ptr_b) { 171*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmb_256: 172*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to4}, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x38,0x40,0x07] 174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 175*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 176*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 177*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 178*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 -1) 179*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 180*9880d681SAndroid Build Coastguard Worker} 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rmbk_256(<4 x i64> %a, i64* %ptr_b, <4 x i64> %passThru, i8 %mask) { 183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbk_256: 184*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 186*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to4}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x39,0x40,0x0f] 187*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 188*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 189*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 190*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 191*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 192*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask) 193*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 194*9880d681SAndroid Build Coastguard Worker} 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_mask_mullo_epi64_rmbkz_256(<4 x i64> %a, i64* %ptr_b, i8 %mask) { 197*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbkz_256: 198*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to4}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xb9,0x40,0x07] 201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 202*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 203*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0 204*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x i64> %vecinit.i, <4 x i64> undef, <4 x i32> zeroinitializer 205*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> zeroinitializer, i8 %mask) 206*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64>, <4 x i64>, <4 x i64>, i8) 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rr_128(<2 x i64> %a, <2 x i64> %b) { 212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rr_128: 213*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x40,0xc1] 215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 216*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 217*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 218*9880d681SAndroid Build Coastguard Worker} 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rrk_128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) { 221*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrk_128: 222*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 223*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 224*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x40,0xd1] 225*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 227*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 228*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 229*9880d681SAndroid Build Coastguard Worker} 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rrkz_128(<2 x i64> %a, <2 x i64> %b, i8 %mask) { 232*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rrkz_128: 233*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 234*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 235*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x40,0xc1] 236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 237*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 238*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 239*9880d681SAndroid Build Coastguard Worker} 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rm_128(<2 x i64> %a, <2 x i64>* %ptr_b) { 242*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rm_128: 243*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 244*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x40,0x07] 245*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 246*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 247*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 248*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 249*9880d681SAndroid Build Coastguard Worker} 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rmk_128(<2 x i64> %a, <2 x i64>* %ptr_b, <2 x i64> %passThru, i8 %mask) { 252*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmk_128: 253*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x40,0x0f] 256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 257*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 258*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 259*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 260*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 261*9880d681SAndroid Build Coastguard Worker} 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rmkz_128(<2 x i64> %a, <2 x i64>* %ptr_b, i8 %mask) { 264*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmkz_128: 265*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x40,0x07] 268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 269*9880d681SAndroid Build Coastguard Worker %b = load <2 x i64>, <2 x i64>* %ptr_b 270*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 271*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 272*9880d681SAndroid Build Coastguard Worker} 273*9880d681SAndroid Build Coastguard Worker 274*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rmb_128(<2 x i64> %a, i64* %ptr_b) { 275*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmb_128: 276*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 277*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to2}, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x18,0x40,0x07] 278*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 279*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 280*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 281*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 282*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 -1) 283*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 284*9880d681SAndroid Build Coastguard Worker} 285*9880d681SAndroid Build Coastguard Worker 286*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rmbk_128(<2 x i64> %a, i64* %ptr_b, <2 x i64> %passThru, i8 %mask) { 287*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbk_128: 288*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 289*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 290*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to2}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x19,0x40,0x0f] 291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 293*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 294*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 295*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 296*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask) 297*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_mask_mullo_epi64_rmbkz_128(<2 x i64> %a, i64* %ptr_b, i8 %mask) { 301*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_mullo_epi64_rmbkz_128: 302*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmullq (%rdi){1to2}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x99,0x40,0x07] 305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 306*9880d681SAndroid Build Coastguard Worker %q = load i64, i64* %ptr_b 307*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0 308*9880d681SAndroid Build Coastguard Worker %b = shufflevector <2 x i64> %vecinit.i, <2 x i64> undef, <2 x i32> zeroinitializer 309*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> zeroinitializer, i8 %mask) 310*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 311*9880d681SAndroid Build Coastguard Worker} 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64>, <2 x i64>, <2 x i64>, i8) 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rr_128(<4 x float> %a, <4 x float> %b) { 316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rr_128: 317*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x55,0xc1] 319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 320*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 321*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 322*9880d681SAndroid Build Coastguard Worker} 323*9880d681SAndroid Build Coastguard Worker 324*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) { 325*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrk_128: 326*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 328*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x55,0xd1] 329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 331*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 332*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 333*9880d681SAndroid Build Coastguard Worker} 334*9880d681SAndroid Build Coastguard Worker 335*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8 %mask) { 336*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrkz_128: 337*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x55,0xc1] 340*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 341*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 342*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 343*9880d681SAndroid Build Coastguard Worker} 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) { 346*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rm_128: 347*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 348*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x55,0x07] 349*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 350*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 351*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 352*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b, <4 x float> %passThru, i8 %mask) { 356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmk_128: 357*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 358*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x55,0x0f] 360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 361*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 362*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 363*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 364*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 365*9880d681SAndroid Build Coastguard Worker} 366*9880d681SAndroid Build Coastguard Worker 367*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rmkz_128(<4 x float> %a, <4 x float>* %ptr_b, i8 %mask) { 368*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmkz_128: 369*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 371*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x55,0x07] 372*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 373*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 374*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 375*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 376*9880d681SAndroid Build Coastguard Worker} 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rmb_128(<4 x float> %a, float* %ptr_b) { 379*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmb_128: 380*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x18,0x55,0x07] 382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 383*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 384*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 385*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 386*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 387*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 388*9880d681SAndroid Build Coastguard Worker} 389*9880d681SAndroid Build Coastguard Worker 390*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4 x float> %passThru, i8 %mask) { 391*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbk_128: 392*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 393*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 394*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x55,0x0f] 395*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 396*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 397*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 398*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 399*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 400*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 401*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 402*9880d681SAndroid Build Coastguard Worker} 403*9880d681SAndroid Build Coastguard Worker 404*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_andnot_ps_rmbkz_128(<4 x float> %a, float* %ptr_b, i8 %mask) { 405*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbkz_128: 406*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 407*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 408*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x99,0x55,0x07] 409*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 410*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 411*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 412*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 413*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 414*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 415*9880d681SAndroid Build Coastguard Worker} 416*9880d681SAndroid Build Coastguard Worker 417*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 418*9880d681SAndroid Build Coastguard Worker 419*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rr_256(<8 x float> %a, <8 x float> %b) { 420*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rr_256: 421*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x55,0xc1] 423*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 424*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 425*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 426*9880d681SAndroid Build Coastguard Worker} 427*9880d681SAndroid Build Coastguard Worker 428*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) { 429*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrk_256: 430*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x55,0xd1] 433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 435*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 436*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8 %mask) { 440*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrkz_256: 441*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 442*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 443*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x55,0xc1] 444*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 445*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 446*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 447*9880d681SAndroid Build Coastguard Worker} 448*9880d681SAndroid Build Coastguard Worker 449*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) { 450*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rm_256: 451*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x55,0x07] 453*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 454*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 455*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 456*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 457*9880d681SAndroid Build Coastguard Worker} 458*9880d681SAndroid Build Coastguard Worker 459*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b, <8 x float> %passThru, i8 %mask) { 460*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmk_256: 461*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 462*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 463*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x55,0x0f] 464*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 465*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 466*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 467*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 468*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 469*9880d681SAndroid Build Coastguard Worker} 470*9880d681SAndroid Build Coastguard Worker 471*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rmkz_256(<8 x float> %a, <8 x float>* %ptr_b, i8 %mask) { 472*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmkz_256: 473*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 474*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 475*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x55,0x07] 476*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 477*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 478*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 479*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 480*9880d681SAndroid Build Coastguard Worker} 481*9880d681SAndroid Build Coastguard Worker 482*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rmb_256(<8 x float> %a, float* %ptr_b) { 483*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmb_256: 484*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 485*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x38,0x55,0x07] 486*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 487*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 488*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 489*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 490*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 491*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 492*9880d681SAndroid Build Coastguard Worker} 493*9880d681SAndroid Build Coastguard Worker 494*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8 x float> %passThru, i8 %mask) { 495*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbk_256: 496*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 497*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 498*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x55,0x0f] 499*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 500*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 501*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 502*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 503*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 504*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 505*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 506*9880d681SAndroid Build Coastguard Worker} 507*9880d681SAndroid Build Coastguard Worker 508*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_andnot_ps_rmbkz_256(<8 x float> %a, float* %ptr_b, i8 %mask) { 509*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbkz_256: 510*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 511*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 512*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xb9,0x55,0x07] 513*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 514*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 515*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 516*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 517*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 518*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 519*9880d681SAndroid Build Coastguard Worker} 520*9880d681SAndroid Build Coastguard Worker 521*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 522*9880d681SAndroid Build Coastguard Worker 523*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rr_512(<16 x float> %a, <16 x float> %b) { 524*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rr_512: 525*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x55,0xc1] 527*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 528*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 529*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 530*9880d681SAndroid Build Coastguard Worker} 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rrk_512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) { 533*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrk_512: 534*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 535*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 536*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x55,0xd1] 537*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 538*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 539*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 540*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 541*9880d681SAndroid Build Coastguard Worker} 542*9880d681SAndroid Build Coastguard Worker 543*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rrkz_512(<16 x float> %a, <16 x float> %b, i16 %mask) { 544*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rrkz_512: 545*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 546*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 547*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x55,0xc1] 548*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 549*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 550*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 551*9880d681SAndroid Build Coastguard Worker} 552*9880d681SAndroid Build Coastguard Worker 553*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rm_512(<16 x float> %a, <16 x float>* %ptr_b) { 554*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rm_512: 555*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 556*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x55,0x07] 557*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 558*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 559*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 560*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 561*9880d681SAndroid Build Coastguard Worker} 562*9880d681SAndroid Build Coastguard Worker 563*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rmk_512(<16 x float> %a, <16 x float>* %ptr_b, <16 x float> %passThru, i16 %mask) { 564*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmk_512: 565*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 567*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x55,0x0f] 568*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 569*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 570*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 571*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 572*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 573*9880d681SAndroid Build Coastguard Worker} 574*9880d681SAndroid Build Coastguard Worker 575*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rmkz_512(<16 x float> %a, <16 x float>* %ptr_b, i16 %mask) { 576*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmkz_512: 577*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 578*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 579*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x55,0x07] 580*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 581*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 582*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 583*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 584*9880d681SAndroid Build Coastguard Worker} 585*9880d681SAndroid Build Coastguard Worker 586*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rmb_512(<16 x float> %a, float* %ptr_b) { 587*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmb_512: 588*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 589*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to16}, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x58,0x55,0x07] 590*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 591*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 592*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 593*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 594*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 595*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 596*9880d681SAndroid Build Coastguard Worker} 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rmbk_512(<16 x float> %a, float* %ptr_b, <16 x float> %passThru, i16 %mask) { 599*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbk_512: 600*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 602*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to16}, %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x59,0x55,0x0f] 603*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 604*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 605*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 606*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 607*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 608*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 609*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 610*9880d681SAndroid Build Coastguard Worker} 611*9880d681SAndroid Build Coastguard Worker 612*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_andnot_ps_rmbkz_512(<16 x float> %a, float* %ptr_b, i16 %mask) { 613*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_andnot_ps_rmbkz_512: 614*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 615*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandnps (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xd9,0x55,0x07] 617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 618*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 619*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 620*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 621*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 622*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 623*9880d681SAndroid Build Coastguard Worker} 624*9880d681SAndroid Build Coastguard Worker 625*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float>, <16 x float>, <16 x float>, i16) 626*9880d681SAndroid Build Coastguard Worker 627*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rr_128(<4 x float> %a, <4 x float> %b) { 628*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rr_128: 629*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 630*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x54,0xc1] 631*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 632*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 633*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 634*9880d681SAndroid Build Coastguard Worker} 635*9880d681SAndroid Build Coastguard Worker 636*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) { 637*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrk_128: 638*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 639*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 640*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x54,0xd1] 641*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 642*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 643*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 644*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 645*9880d681SAndroid Build Coastguard Worker} 646*9880d681SAndroid Build Coastguard Worker 647*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8 %mask) { 648*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrkz_128: 649*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x54,0xc1] 652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 653*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 654*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 655*9880d681SAndroid Build Coastguard Worker} 656*9880d681SAndroid Build Coastguard Worker 657*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) { 658*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rm_128: 659*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 660*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x54,0x07] 661*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 662*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 663*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 664*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 665*9880d681SAndroid Build Coastguard Worker} 666*9880d681SAndroid Build Coastguard Worker 667*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b, <4 x float> %passThru, i8 %mask) { 668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmk_128: 669*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 670*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 671*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x54,0x0f] 672*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 673*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 674*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 675*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 676*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 677*9880d681SAndroid Build Coastguard Worker} 678*9880d681SAndroid Build Coastguard Worker 679*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rmkz_128(<4 x float> %a, <4 x float>* %ptr_b, i8 %mask) { 680*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmkz_128: 681*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 682*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x54,0x07] 684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 685*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 686*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 687*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 688*9880d681SAndroid Build Coastguard Worker} 689*9880d681SAndroid Build Coastguard Worker 690*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rmb_128(<4 x float> %a, float* %ptr_b) { 691*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmb_128: 692*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 693*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x18,0x54,0x07] 694*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 695*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 696*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 697*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 698*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 699*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 700*9880d681SAndroid Build Coastguard Worker} 701*9880d681SAndroid Build Coastguard Worker 702*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4 x float> %passThru, i8 %mask) { 703*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbk_128: 704*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 705*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 706*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x54,0x0f] 707*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 708*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 709*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 710*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 711*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 712*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 713*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 714*9880d681SAndroid Build Coastguard Worker} 715*9880d681SAndroid Build Coastguard Worker 716*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_and_ps_rmbkz_128(<4 x float> %a, float* %ptr_b, i8 %mask) { 717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbkz_128: 718*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 719*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 720*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x99,0x54,0x07] 721*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 722*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 723*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 724*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 725*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 726*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 727*9880d681SAndroid Build Coastguard Worker} 728*9880d681SAndroid Build Coastguard Worker 729*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 730*9880d681SAndroid Build Coastguard Worker 731*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rr_256(<8 x float> %a, <8 x float> %b) { 732*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rr_256: 733*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 734*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x54,0xc1] 735*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 736*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 737*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 738*9880d681SAndroid Build Coastguard Worker} 739*9880d681SAndroid Build Coastguard Worker 740*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) { 741*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrk_256: 742*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 743*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 744*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x54,0xd1] 745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 746*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 747*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 748*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 749*9880d681SAndroid Build Coastguard Worker} 750*9880d681SAndroid Build Coastguard Worker 751*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8 %mask) { 752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrkz_256: 753*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 754*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 755*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x54,0xc1] 756*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 757*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 758*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 759*9880d681SAndroid Build Coastguard Worker} 760*9880d681SAndroid Build Coastguard Worker 761*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) { 762*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rm_256: 763*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 764*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x54,0x07] 765*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 766*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 767*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 768*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 769*9880d681SAndroid Build Coastguard Worker} 770*9880d681SAndroid Build Coastguard Worker 771*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b, <8 x float> %passThru, i8 %mask) { 772*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmk_256: 773*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 774*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 775*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x54,0x0f] 776*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 777*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 778*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 779*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 780*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 781*9880d681SAndroid Build Coastguard Worker} 782*9880d681SAndroid Build Coastguard Worker 783*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rmkz_256(<8 x float> %a, <8 x float>* %ptr_b, i8 %mask) { 784*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmkz_256: 785*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 786*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 787*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x54,0x07] 788*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 789*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 790*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 791*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 792*9880d681SAndroid Build Coastguard Worker} 793*9880d681SAndroid Build Coastguard Worker 794*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rmb_256(<8 x float> %a, float* %ptr_b) { 795*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmb_256: 796*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 797*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x38,0x54,0x07] 798*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 799*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 800*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 801*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 802*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 803*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 804*9880d681SAndroid Build Coastguard Worker} 805*9880d681SAndroid Build Coastguard Worker 806*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8 x float> %passThru, i8 %mask) { 807*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbk_256: 808*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 809*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 810*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x54,0x0f] 811*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 812*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 813*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 814*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 815*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 816*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 817*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 818*9880d681SAndroid Build Coastguard Worker} 819*9880d681SAndroid Build Coastguard Worker 820*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_and_ps_rmbkz_256(<8 x float> %a, float* %ptr_b, i8 %mask) { 821*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbkz_256: 822*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 823*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xb9,0x54,0x07] 825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 826*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 827*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 828*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 829*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 830*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 831*9880d681SAndroid Build Coastguard Worker} 832*9880d681SAndroid Build Coastguard Worker 833*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 834*9880d681SAndroid Build Coastguard Worker 835*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rr_512(<16 x float> %a, <16 x float> %b) { 836*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rr_512: 837*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 838*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x54,0xc1] 839*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 840*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 841*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 842*9880d681SAndroid Build Coastguard Worker} 843*9880d681SAndroid Build Coastguard Worker 844*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rrk_512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) { 845*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrk_512: 846*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 847*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 848*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x54,0xd1] 849*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 850*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 851*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 852*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 853*9880d681SAndroid Build Coastguard Worker} 854*9880d681SAndroid Build Coastguard Worker 855*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rrkz_512(<16 x float> %a, <16 x float> %b, i16 %mask) { 856*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rrkz_512: 857*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x54,0xc1] 860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 861*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 862*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 863*9880d681SAndroid Build Coastguard Worker} 864*9880d681SAndroid Build Coastguard Worker 865*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rm_512(<16 x float> %a, <16 x float>* %ptr_b) { 866*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rm_512: 867*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 868*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x54,0x07] 869*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 870*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 871*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 872*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 873*9880d681SAndroid Build Coastguard Worker} 874*9880d681SAndroid Build Coastguard Worker 875*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rmk_512(<16 x float> %a, <16 x float>* %ptr_b, <16 x float> %passThru, i16 %mask) { 876*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmk_512: 877*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 878*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 879*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x54,0x0f] 880*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 881*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 882*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 883*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 884*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 885*9880d681SAndroid Build Coastguard Worker} 886*9880d681SAndroid Build Coastguard Worker 887*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rmkz_512(<16 x float> %a, <16 x float>* %ptr_b, i16 %mask) { 888*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmkz_512: 889*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x54,0x07] 892*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 893*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 894*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 895*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 896*9880d681SAndroid Build Coastguard Worker} 897*9880d681SAndroid Build Coastguard Worker 898*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rmb_512(<16 x float> %a, float* %ptr_b) { 899*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmb_512: 900*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 901*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to16}, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x58,0x54,0x07] 902*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 903*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 904*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 905*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 906*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 907*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 908*9880d681SAndroid Build Coastguard Worker} 909*9880d681SAndroid Build Coastguard Worker 910*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rmbk_512(<16 x float> %a, float* %ptr_b, <16 x float> %passThru, i16 %mask) { 911*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbk_512: 912*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 913*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 914*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to16}, %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x59,0x54,0x0f] 915*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 916*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 917*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 918*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 919*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 920*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 921*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 922*9880d681SAndroid Build Coastguard Worker} 923*9880d681SAndroid Build Coastguard Worker 924*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_and_ps_rmbkz_512(<16 x float> %a, float* %ptr_b, i16 %mask) { 925*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_and_ps_rmbkz_512: 926*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 927*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 928*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vandps (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xd9,0x54,0x07] 929*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 930*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 931*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 932*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 933*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 934*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 935*9880d681SAndroid Build Coastguard Worker} 936*9880d681SAndroid Build Coastguard Worker 937*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float>, <16 x float>, <16 x float>, i16) 938*9880d681SAndroid Build Coastguard Worker 939*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rr_128(<4 x float> %a, <4 x float> %b) { 940*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rr_128: 941*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 942*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x56,0xc1] 943*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 944*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 945*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 946*9880d681SAndroid Build Coastguard Worker} 947*9880d681SAndroid Build Coastguard Worker 948*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) { 949*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrk_128: 950*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 951*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 952*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x56,0xd1] 953*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 954*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 955*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 956*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 957*9880d681SAndroid Build Coastguard Worker} 958*9880d681SAndroid Build Coastguard Worker 959*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8 %mask) { 960*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrkz_128: 961*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 962*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 963*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x56,0xc1] 964*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 965*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 966*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 967*9880d681SAndroid Build Coastguard Worker} 968*9880d681SAndroid Build Coastguard Worker 969*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) { 970*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rm_128: 971*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 972*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x56,0x07] 973*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 974*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 975*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 976*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 977*9880d681SAndroid Build Coastguard Worker} 978*9880d681SAndroid Build Coastguard Worker 979*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b, <4 x float> %passThru, i8 %mask) { 980*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmk_128: 981*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 982*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 983*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x56,0x0f] 984*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 985*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 986*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 987*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 988*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 989*9880d681SAndroid Build Coastguard Worker} 990*9880d681SAndroid Build Coastguard Worker 991*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rmkz_128(<4 x float> %a, <4 x float>* %ptr_b, i8 %mask) { 992*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmkz_128: 993*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 994*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 995*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x56,0x07] 996*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 997*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 998*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 999*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1000*9880d681SAndroid Build Coastguard Worker} 1001*9880d681SAndroid Build Coastguard Worker 1002*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rmb_128(<4 x float> %a, float* %ptr_b) { 1003*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmb_128: 1004*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1005*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x18,0x56,0x07] 1006*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1007*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1008*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1009*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1010*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 1011*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1012*9880d681SAndroid Build Coastguard Worker} 1013*9880d681SAndroid Build Coastguard Worker 1014*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4 x float> %passThru, i8 %mask) { 1015*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbk_128: 1016*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1017*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1018*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x56,0x0f] 1019*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1020*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1021*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1022*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1023*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1024*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 1025*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1026*9880d681SAndroid Build Coastguard Worker} 1027*9880d681SAndroid Build Coastguard Worker 1028*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_or_ps_rmbkz_128(<4 x float> %a, float* %ptr_b, i8 %mask) { 1029*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbkz_128: 1030*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1031*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1032*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x99,0x56,0x07] 1033*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1034*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1035*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1036*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1037*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 1038*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1039*9880d681SAndroid Build Coastguard Worker} 1040*9880d681SAndroid Build Coastguard Worker 1041*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1042*9880d681SAndroid Build Coastguard Worker 1043*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rr_256(<8 x float> %a, <8 x float> %b) { 1044*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rr_256: 1045*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1046*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x56,0xc1] 1047*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1048*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1049*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1050*9880d681SAndroid Build Coastguard Worker} 1051*9880d681SAndroid Build Coastguard Worker 1052*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) { 1053*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrk_256: 1054*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1055*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1056*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x56,0xd1] 1057*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1058*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1059*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1060*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1061*9880d681SAndroid Build Coastguard Worker} 1062*9880d681SAndroid Build Coastguard Worker 1063*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8 %mask) { 1064*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrkz_256: 1065*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1066*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1067*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x56,0xc1] 1068*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1069*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1070*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1071*9880d681SAndroid Build Coastguard Worker} 1072*9880d681SAndroid Build Coastguard Worker 1073*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) { 1074*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rm_256: 1075*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1076*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x56,0x07] 1077*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1078*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1079*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1080*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1081*9880d681SAndroid Build Coastguard Worker} 1082*9880d681SAndroid Build Coastguard Worker 1083*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b, <8 x float> %passThru, i8 %mask) { 1084*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmk_256: 1085*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1086*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1087*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x56,0x0f] 1088*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1089*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1090*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1091*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1092*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1093*9880d681SAndroid Build Coastguard Worker} 1094*9880d681SAndroid Build Coastguard Worker 1095*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rmkz_256(<8 x float> %a, <8 x float>* %ptr_b, i8 %mask) { 1096*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmkz_256: 1097*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1098*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1099*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x56,0x07] 1100*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1101*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1102*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1103*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1104*9880d681SAndroid Build Coastguard Worker} 1105*9880d681SAndroid Build Coastguard Worker 1106*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rmb_256(<8 x float> %a, float* %ptr_b) { 1107*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmb_256: 1108*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1109*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x38,0x56,0x07] 1110*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1111*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1112*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1113*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1114*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1115*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1116*9880d681SAndroid Build Coastguard Worker} 1117*9880d681SAndroid Build Coastguard Worker 1118*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8 x float> %passThru, i8 %mask) { 1119*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbk_256: 1120*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x56,0x0f] 1123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1125*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1126*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1127*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1128*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1129*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1130*9880d681SAndroid Build Coastguard Worker} 1131*9880d681SAndroid Build Coastguard Worker 1132*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_or_ps_rmbkz_256(<8 x float> %a, float* %ptr_b, i8 %mask) { 1133*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbkz_256: 1134*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xb9,0x56,0x07] 1137*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1138*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1139*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1140*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1141*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1142*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1143*9880d681SAndroid Build Coastguard Worker} 1144*9880d681SAndroid Build Coastguard Worker 1145*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1146*9880d681SAndroid Build Coastguard Worker 1147*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rr_512(<16 x float> %a, <16 x float> %b) { 1148*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rr_512: 1149*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x56,0xc1] 1151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1152*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1153*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1154*9880d681SAndroid Build Coastguard Worker} 1155*9880d681SAndroid Build Coastguard Worker 1156*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rrk_512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) { 1157*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrk_512: 1158*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x56,0xd1] 1161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1163*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1164*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1165*9880d681SAndroid Build Coastguard Worker} 1166*9880d681SAndroid Build Coastguard Worker 1167*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rrkz_512(<16 x float> %a, <16 x float> %b, i16 %mask) { 1168*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rrkz_512: 1169*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1170*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1171*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x56,0xc1] 1172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1173*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1174*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1175*9880d681SAndroid Build Coastguard Worker} 1176*9880d681SAndroid Build Coastguard Worker 1177*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rm_512(<16 x float> %a, <16 x float>* %ptr_b) { 1178*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rm_512: 1179*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x56,0x07] 1181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1182*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1183*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1184*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1185*9880d681SAndroid Build Coastguard Worker} 1186*9880d681SAndroid Build Coastguard Worker 1187*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rmk_512(<16 x float> %a, <16 x float>* %ptr_b, <16 x float> %passThru, i16 %mask) { 1188*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmk_512: 1189*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1190*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1191*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x56,0x0f] 1192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1194*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1195*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1196*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1197*9880d681SAndroid Build Coastguard Worker} 1198*9880d681SAndroid Build Coastguard Worker 1199*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rmkz_512(<16 x float> %a, <16 x float>* %ptr_b, i16 %mask) { 1200*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmkz_512: 1201*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x56,0x07] 1204*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1205*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1206*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1207*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1208*9880d681SAndroid Build Coastguard Worker} 1209*9880d681SAndroid Build Coastguard Worker 1210*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rmb_512(<16 x float> %a, float* %ptr_b) { 1211*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmb_512: 1212*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1213*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to16}, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x58,0x56,0x07] 1214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1215*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1216*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1217*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1218*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1219*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1220*9880d681SAndroid Build Coastguard Worker} 1221*9880d681SAndroid Build Coastguard Worker 1222*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rmbk_512(<16 x float> %a, float* %ptr_b, <16 x float> %passThru, i16 %mask) { 1223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbk_512: 1224*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1225*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to16}, %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x59,0x56,0x0f] 1227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1229*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1230*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1231*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1232*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1233*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1234*9880d681SAndroid Build Coastguard Worker} 1235*9880d681SAndroid Build Coastguard Worker 1236*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_or_ps_rmbkz_512(<16 x float> %a, float* %ptr_b, i16 %mask) { 1237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_or_ps_rmbkz_512: 1238*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1240*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vorps (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xd9,0x56,0x07] 1241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1242*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1243*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1244*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1245*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1246*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1247*9880d681SAndroid Build Coastguard Worker} 1248*9880d681SAndroid Build Coastguard Worker 1249*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float>, <16 x float>, <16 x float>, i16) 1250*9880d681SAndroid Build Coastguard Worker 1251*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rr_128(<4 x float> %a, <4 x float> %b) { 1252*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rr_128: 1253*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x57,0xc1] 1255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1256*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 1257*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1258*9880d681SAndroid Build Coastguard Worker} 1259*9880d681SAndroid Build Coastguard Worker 1260*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) { 1261*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrk_128: 1262*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x57,0xd1] 1265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1267*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 1268*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1269*9880d681SAndroid Build Coastguard Worker} 1270*9880d681SAndroid Build Coastguard Worker 1271*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8 %mask) { 1272*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrkz_128: 1273*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x57,0xc1] 1276*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1277*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 1278*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1279*9880d681SAndroid Build Coastguard Worker} 1280*9880d681SAndroid Build Coastguard Worker 1281*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) { 1282*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rm_128: 1283*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1284*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x57,0x07] 1285*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1286*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 1287*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 1288*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1289*9880d681SAndroid Build Coastguard Worker} 1290*9880d681SAndroid Build Coastguard Worker 1291*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b, <4 x float> %passThru, i8 %mask) { 1292*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmk_128: 1293*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x57,0x0f] 1296*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1297*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1298*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 1299*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 1300*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1301*9880d681SAndroid Build Coastguard Worker} 1302*9880d681SAndroid Build Coastguard Worker 1303*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rmkz_128(<4 x float> %a, <4 x float>* %ptr_b, i8 %mask) { 1304*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmkz_128: 1305*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x57,0x07] 1308*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1309*9880d681SAndroid Build Coastguard Worker %b = load <4 x float>, <4 x float>* %ptr_b 1310*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 1311*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1312*9880d681SAndroid Build Coastguard Worker} 1313*9880d681SAndroid Build Coastguard Worker 1314*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rmb_128(<4 x float> %a, float* %ptr_b) { 1315*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmb_128: 1316*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to4}, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x18,0x57,0x07] 1318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1319*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1320*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1321*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1322*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1) 1323*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1324*9880d681SAndroid Build Coastguard Worker} 1325*9880d681SAndroid Build Coastguard Worker 1326*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4 x float> %passThru, i8 %mask) { 1327*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbk_128: 1328*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x57,0x0f] 1331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1332*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1333*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1334*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1335*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1336*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask) 1337*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1338*9880d681SAndroid Build Coastguard Worker} 1339*9880d681SAndroid Build Coastguard Worker 1340*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mask_xor_ps_rmbkz_128(<4 x float> %a, float* %ptr_b, i8 %mask) { 1341*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbkz_128: 1342*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1343*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1344*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to4}, %xmm0, %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x99,0x57,0x07] 1345*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1346*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1347*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <4 x float> undef, float %q, i32 0 1348*9880d681SAndroid Build Coastguard Worker %b = shufflevector <4 x float> %vecinit.i, <4 x float> undef, <4 x i32> zeroinitializer 1349*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 %mask) 1350*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 1351*9880d681SAndroid Build Coastguard Worker} 1352*9880d681SAndroid Build Coastguard Worker 1353*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float>, <4 x float>, <4 x float>, i8) 1354*9880d681SAndroid Build Coastguard Worker 1355*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rr_256(<8 x float> %a, <8 x float> %b) { 1356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rr_256: 1357*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1358*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x57,0xc1] 1359*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1360*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1361*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1362*9880d681SAndroid Build Coastguard Worker} 1363*9880d681SAndroid Build Coastguard Worker 1364*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) { 1365*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrk_256: 1366*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x57,0xd1] 1369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1370*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1371*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1372*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1373*9880d681SAndroid Build Coastguard Worker} 1374*9880d681SAndroid Build Coastguard Worker 1375*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8 %mask) { 1376*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrkz_256: 1377*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x57,0xc1] 1380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1381*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1382*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1383*9880d681SAndroid Build Coastguard Worker} 1384*9880d681SAndroid Build Coastguard Worker 1385*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) { 1386*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rm_256: 1387*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x57,0x07] 1389*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1390*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1391*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1392*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1393*9880d681SAndroid Build Coastguard Worker} 1394*9880d681SAndroid Build Coastguard Worker 1395*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b, <8 x float> %passThru, i8 %mask) { 1396*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmk_256: 1397*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1398*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1399*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x57,0x0f] 1400*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1401*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1402*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1403*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1404*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1405*9880d681SAndroid Build Coastguard Worker} 1406*9880d681SAndroid Build Coastguard Worker 1407*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rmkz_256(<8 x float> %a, <8 x float>* %ptr_b, i8 %mask) { 1408*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmkz_256: 1409*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1410*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x57,0x07] 1412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1413*9880d681SAndroid Build Coastguard Worker %b = load <8 x float>, <8 x float>* %ptr_b 1414*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1415*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1416*9880d681SAndroid Build Coastguard Worker} 1417*9880d681SAndroid Build Coastguard Worker 1418*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rmb_256(<8 x float> %a, float* %ptr_b) { 1419*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmb_256: 1420*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1421*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to8}, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x38,0x57,0x07] 1422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1423*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1424*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1425*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1426*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1) 1427*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1428*9880d681SAndroid Build Coastguard Worker} 1429*9880d681SAndroid Build Coastguard Worker 1430*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8 x float> %passThru, i8 %mask) { 1431*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbk_256: 1432*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x57,0x0f] 1435*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1436*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1437*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1438*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1439*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1440*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask) 1441*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1442*9880d681SAndroid Build Coastguard Worker} 1443*9880d681SAndroid Build Coastguard Worker 1444*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_mask_xor_ps_rmbkz_256(<8 x float> %a, float* %ptr_b, i8 %mask) { 1445*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbkz_256: 1446*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1447*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce] 1448*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to8}, %ymm0, %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xb9,0x57,0x07] 1449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1450*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1451*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <8 x float> undef, float %q, i32 0 1452*9880d681SAndroid Build Coastguard Worker %b = shufflevector <8 x float> %vecinit.i, <8 x float> undef, <8 x i32> zeroinitializer 1453*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 %mask) 1454*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res 1455*9880d681SAndroid Build Coastguard Worker} 1456*9880d681SAndroid Build Coastguard Worker 1457*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float>, <8 x float>, <8 x float>, i8) 1458*9880d681SAndroid Build Coastguard Worker 1459*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rr_512(<16 x float> %a, <16 x float> %b) { 1460*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rr_512: 1461*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1462*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %zmm1, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x57,0xc1] 1463*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1464*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1465*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1466*9880d681SAndroid Build Coastguard Worker} 1467*9880d681SAndroid Build Coastguard Worker 1468*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rrk_512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) { 1469*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrk_512: 1470*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1471*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1472*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %zmm1, %zmm0, %zmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x57,0xd1] 1473*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2] 1474*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1475*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1476*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1477*9880d681SAndroid Build Coastguard Worker} 1478*9880d681SAndroid Build Coastguard Worker 1479*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rrkz_512(<16 x float> %a, <16 x float> %b, i16 %mask) { 1480*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rrkz_512: 1481*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1482*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf] 1483*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %zmm1, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x57,0xc1] 1484*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1485*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1486*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1487*9880d681SAndroid Build Coastguard Worker} 1488*9880d681SAndroid Build Coastguard Worker 1489*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rm_512(<16 x float> %a, <16 x float>* %ptr_b) { 1490*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rm_512: 1491*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1492*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x57,0x07] 1493*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1494*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1495*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1496*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1497*9880d681SAndroid Build Coastguard Worker} 1498*9880d681SAndroid Build Coastguard Worker 1499*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rmk_512(<16 x float> %a, <16 x float>* %ptr_b, <16 x float> %passThru, i16 %mask) { 1500*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmk_512: 1501*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1502*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1503*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x57,0x0f] 1504*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1505*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1506*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1507*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1508*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1509*9880d681SAndroid Build Coastguard Worker} 1510*9880d681SAndroid Build Coastguard Worker 1511*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rmkz_512(<16 x float> %a, <16 x float>* %ptr_b, i16 %mask) { 1512*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmkz_512: 1513*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1514*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1515*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi), %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x57,0x07] 1516*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1517*9880d681SAndroid Build Coastguard Worker %b = load <16 x float>, <16 x float>* %ptr_b 1518*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1519*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1520*9880d681SAndroid Build Coastguard Worker} 1521*9880d681SAndroid Build Coastguard Worker 1522*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rmb_512(<16 x float> %a, float* %ptr_b) { 1523*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmb_512: 1524*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to16}, %zmm0, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x58,0x57,0x07] 1526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1527*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1528*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1529*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1530*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 -1) 1531*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1532*9880d681SAndroid Build Coastguard Worker} 1533*9880d681SAndroid Build Coastguard Worker 1534*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rmbk_512(<16 x float> %a, float* %ptr_b, <16 x float> %passThru, i16 %mask) { 1535*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbk_512: 1536*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1537*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1538*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to16}, %zmm0, %zmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x59,0x57,0x0f] 1539*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm1, %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc1] 1540*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1541*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1542*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1543*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1544*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %passThru, i16 %mask) 1545*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1546*9880d681SAndroid Build Coastguard Worker} 1547*9880d681SAndroid Build Coastguard Worker 1548*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_xor_ps_rmbkz_512(<16 x float> %a, float* %ptr_b, i16 %mask) { 1549*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_xor_ps_rmbkz_512: 1550*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1551*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %esi, %k1 ## encoding: [0xc5,0xf8,0x92,0xce] 1552*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xd9,0x57,0x07] 1553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1554*9880d681SAndroid Build Coastguard Worker %q = load float, float* %ptr_b 1555*9880d681SAndroid Build Coastguard Worker %vecinit.i = insertelement <16 x float> undef, float %q, i32 0 1556*9880d681SAndroid Build Coastguard Worker %b = shufflevector <16 x float> %vecinit.i, <16 x float> undef, <16 x i32> zeroinitializer 1557*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> zeroinitializer, i16 %mask) 1558*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 1559*9880d681SAndroid Build Coastguard Worker} 1560*9880d681SAndroid Build Coastguard Worker 1561*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.xor.ps.512(<16 x float>, <16 x float>, <16 x float>, i16) 1562*9880d681SAndroid Build Coastguard Worker 1563*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double>, <2 x i64>, i8) 1564*9880d681SAndroid Build Coastguard Worker 1565*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvt_pd2qq_128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) { 1566*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_pd2qq_128: 1567*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1568*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1569*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x7b,0xc8] 1570*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x7b,0xc0] 1571*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1572*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1573*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) 1574*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1) 1575*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1576*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1577*9880d681SAndroid Build Coastguard Worker} 1578*9880d681SAndroid Build Coastguard Worker 1579*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvtpd2qq.256(<4 x double>, <4 x i64>, i8) 1580*9880d681SAndroid Build Coastguard Worker 1581*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvt_pd2qq_256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) { 1582*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_pd2qq_256: 1583*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1584*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1585*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2qq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x7b,0xc8] 1586*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2qq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x7b,0xc0] 1587*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1588*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1589*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) 1590*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1) 1591*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1592*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1593*9880d681SAndroid Build Coastguard Worker} 1594*9880d681SAndroid Build Coastguard Worker 1595*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.128(<2 x double>, <2 x i64>, i8) 1596*9880d681SAndroid Build Coastguard Worker 1597*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvt_pd2uqq_128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) { 1598*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_pd2uqq_128: 1599*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1600*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x79,0xc8] 1602*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x79,0xc0] 1603*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1604*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1605*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) 1606*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1) 1607*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1608*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1609*9880d681SAndroid Build Coastguard Worker} 1610*9880d681SAndroid Build Coastguard Worker 1611*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.256(<4 x double>, <4 x i64>, i8) 1612*9880d681SAndroid Build Coastguard Worker 1613*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvt_pd2uqq_256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) { 1614*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_pd2uqq_256: 1615*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2uqq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x79,0xc8] 1618*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtpd2uqq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x79,0xc0] 1619*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1620*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1621*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) 1622*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1) 1623*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1624*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1625*9880d681SAndroid Build Coastguard Worker} 1626*9880d681SAndroid Build Coastguard Worker 1627*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvtps2qq.128(<4 x float>, <2 x i64>, i8) 1628*9880d681SAndroid Build Coastguard Worker 1629*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvt_ps2qq_128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) { 1630*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_128: 1631*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1632*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1633*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc8] 1634*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0] 1635*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1636*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1637*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvtps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) 1638*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1) 1639*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1640*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1641*9880d681SAndroid Build Coastguard Worker} 1642*9880d681SAndroid Build Coastguard Worker 1643*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvtps2qq.256(<4 x float>, <4 x i64>, i8) 1644*9880d681SAndroid Build Coastguard Worker 1645*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvt_ps2qq_256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) { 1646*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_256: 1647*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1648*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1649*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2qq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x7b,0xc8] 1650*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2qq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x7b,0xc0] 1651*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1652*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1653*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvtps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) 1654*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1) 1655*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1656*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1657*9880d681SAndroid Build Coastguard Worker} 1658*9880d681SAndroid Build Coastguard Worker 1659*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvtps2uqq.128(<4 x float>, <2 x i64>, i8) 1660*9880d681SAndroid Build Coastguard Worker 1661*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvt_ps2uqq_128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) { 1662*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_128: 1663*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1665*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc8] 1666*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0] 1667*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1668*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1669*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvtps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) 1670*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1) 1671*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1672*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1673*9880d681SAndroid Build Coastguard Worker} 1674*9880d681SAndroid Build Coastguard Worker 1675*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvtps2uqq.256(<4 x float>, <4 x i64>, i8) 1676*9880d681SAndroid Build Coastguard Worker 1677*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvt_ps2uqq_256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) { 1678*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_256: 1679*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1680*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1681*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2uqq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x79,0xc8] 1682*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtps2uqq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x79,0xc0] 1683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1685*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvtps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) 1686*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1) 1687*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1688*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1689*9880d681SAndroid Build Coastguard Worker} 1690*9880d681SAndroid Build Coastguard Worker 1691*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.cvtqq2pd.128(<2 x i64>, <2 x double>, i8) 1692*9880d681SAndroid Build Coastguard Worker 1693*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_cvt_qq2pd_128(<2 x i64> %x0, <2 x double> %x1, i8 %x2) { 1694*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_qq2pd_128: 1695*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1696*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1697*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2pd %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0xe6,0xc8] 1698*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2pd %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfe,0x08,0xe6,0xc0] 1699*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 1700*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1701*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.cvtqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 %x2) 1702*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.cvtqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 -1) 1703*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1704*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1705*9880d681SAndroid Build Coastguard Worker} 1706*9880d681SAndroid Build Coastguard Worker 1707*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.cvtqq2pd.256(<4 x i64>, <4 x double>, i8) 1708*9880d681SAndroid Build Coastguard Worker 1709*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_cvt_qq2pd_256(<4 x i64> %x0, <4 x double> %x1, i8 %x2) { 1710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_qq2pd_256: 1711*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1712*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2pd %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0xe6,0xc8] 1714*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2pd %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfe,0x28,0xe6,0xc0] 1715*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 1716*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1717*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.cvtqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 %x2) 1718*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.cvtqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 -1) 1719*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1720*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1721*9880d681SAndroid Build Coastguard Worker} 1722*9880d681SAndroid Build Coastguard Worker 1723*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64>, <4 x float>, i8) 1724*9880d681SAndroid Build Coastguard Worker 1725*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_cvt_qq2ps_128(<2 x i64> %x0, <4 x float> %x1, i8 %x2) { 1726*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_qq2ps_128: 1727*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1728*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1729*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfc,0x09,0x5b,0xc8] 1730*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfc,0x08,0x5b,0xc0] 1731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 1732*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1733*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2) 1734*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 -1) 1735*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1736*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1737*9880d681SAndroid Build Coastguard Worker} 1738*9880d681SAndroid Build Coastguard Worker 1739*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.256(<4 x i64>, <4 x float>, i8) 1740*9880d681SAndroid Build Coastguard Worker 1741*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_cvt_qq2ps_256(<4 x i64> %x0, <4 x float> %x1, i8 %x2) { 1742*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_qq2ps_256: 1743*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1744*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2ps %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfc,0x29,0x5b,0xc8] 1746*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtqq2ps %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xfc,0x28,0x5b,0xc0] 1747*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 1748*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1749*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 %x2) 1750*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 -1) 1751*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1752*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1753*9880d681SAndroid Build Coastguard Worker} 1754*9880d681SAndroid Build Coastguard Worker 1755*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvttpd2qq.128(<2 x double>, <2 x i64>, i8) 1756*9880d681SAndroid Build Coastguard Worker 1757*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvtt_pd2qq_128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) { 1758*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_pd2qq_128: 1759*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x7a,0xc8] 1762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x7a,0xc0] 1763*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1764*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1765*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) 1766*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1) 1767*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1768*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1769*9880d681SAndroid Build Coastguard Worker} 1770*9880d681SAndroid Build Coastguard Worker 1771*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvttpd2qq.256(<4 x double>, <4 x i64>, i8) 1772*9880d681SAndroid Build Coastguard Worker 1773*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvtt_pd2qq_256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) { 1774*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_pd2qq_256: 1775*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1776*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1777*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2qq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x7a,0xc8] 1778*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2qq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x7a,0xc0] 1779*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1780*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1781*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) 1782*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1) 1783*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1784*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1785*9880d681SAndroid Build Coastguard Worker} 1786*9880d681SAndroid Build Coastguard Worker 1787*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.128(<2 x double>, <2 x i64>, i8) 1788*9880d681SAndroid Build Coastguard Worker 1789*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvtt_pd2uqq_128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) { 1790*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_pd2uqq_128: 1791*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1792*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1793*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x78,0xc8] 1794*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x78,0xc0] 1795*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1796*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1797*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2) 1798*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1) 1799*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1800*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1801*9880d681SAndroid Build Coastguard Worker} 1802*9880d681SAndroid Build Coastguard Worker 1803*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.256(<4 x double>, <4 x i64>, i8) 1804*9880d681SAndroid Build Coastguard Worker 1805*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvtt_pd2uqq_256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) { 1806*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_pd2uqq_256: 1807*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1808*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1809*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2uqq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x78,0xc8] 1810*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttpd2uqq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x78,0xc0] 1811*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1812*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1813*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2) 1814*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1) 1815*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1816*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1817*9880d681SAndroid Build Coastguard Worker} 1818*9880d681SAndroid Build Coastguard Worker 1819*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvttps2qq.128(<4 x float>, <2 x i64>, i8) 1820*9880d681SAndroid Build Coastguard Worker 1821*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvtt_ps2qq_128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) { 1822*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_128: 1823*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1824*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1825*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc8] 1826*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0] 1827*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1828*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1829*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvttps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) 1830*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1) 1831*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1832*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1833*9880d681SAndroid Build Coastguard Worker} 1834*9880d681SAndroid Build Coastguard Worker 1835*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvttps2qq.256(<4 x float>, <4 x i64>, i8) 1836*9880d681SAndroid Build Coastguard Worker 1837*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvtt_ps2qq_256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) { 1838*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_256: 1839*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1840*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1841*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2qq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x7a,0xc8] 1842*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2qq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x7a,0xc0] 1843*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1844*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1845*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvttps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) 1846*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1) 1847*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1848*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1849*9880d681SAndroid Build Coastguard Worker} 1850*9880d681SAndroid Build Coastguard Worker 1851*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.cvtuqq2pd.128(<2 x i64>, <2 x double>, i8) 1852*9880d681SAndroid Build Coastguard Worker 1853*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_cvt_uqq2pd_128(<2 x i64> %x0, <2 x double> %x1, i8 %x2) { 1854*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_uqq2pd_128: 1855*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1856*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1857*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2pd %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0x7a,0xc8] 1858*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2pd %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfe,0x08,0x7a,0xc0] 1859*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 1860*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1861*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.cvtuqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 %x2) 1862*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.cvtuqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 -1) 1863*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1864*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1865*9880d681SAndroid Build Coastguard Worker} 1866*9880d681SAndroid Build Coastguard Worker 1867*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.cvtuqq2pd.256(<4 x i64>, <4 x double>, i8) 1868*9880d681SAndroid Build Coastguard Worker 1869*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_cvt_uqq2pd_256(<4 x i64> %x0, <4 x double> %x1, i8 %x2) { 1870*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_uqq2pd_256: 1871*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1872*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1873*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2pd %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0x7a,0xc8] 1874*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2pd %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfe,0x28,0x7a,0xc0] 1875*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 1876*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1877*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.cvtuqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 %x2) 1878*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.cvtuqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 -1) 1879*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1880*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1881*9880d681SAndroid Build Coastguard Worker} 1882*9880d681SAndroid Build Coastguard Worker 1883*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64>, <4 x float>, i8) 1884*9880d681SAndroid Build Coastguard Worker 1885*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_cvt_uqq2ps_128(<2 x i64> %x0, <4 x float> %x1, i8 %x2) { 1886*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_uqq2ps_128: 1887*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1888*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1889*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x09,0x7a,0xc8] 1890*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0x7a,0xc0] 1891*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 1892*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1893*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2) 1894*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 -1) 1895*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1896*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1897*9880d681SAndroid Build Coastguard Worker} 1898*9880d681SAndroid Build Coastguard Worker 1899*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.256(<4 x i64>, <4 x float>, i8) 1900*9880d681SAndroid Build Coastguard Worker 1901*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_cvt_uqq2ps_256(<4 x i64> %x0, <4 x float> %x1, i8 %x2) { 1902*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvt_uqq2ps_256: 1903*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1904*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1905*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2ps %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x29,0x7a,0xc8] 1906*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvtuqq2ps %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x28,0x7a,0xc0] 1907*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 1908*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1909*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 %x2) 1910*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 -1) 1911*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1912*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1913*9880d681SAndroid Build Coastguard Worker} 1914*9880d681SAndroid Build Coastguard Worker 1915*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.mask.cvttps2uqq.128(<4 x float>, <2 x i64>, i8) 1916*9880d681SAndroid Build Coastguard Worker 1917*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_mask_cvtt_ps2uqq_128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) { 1918*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_128: 1919*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1920*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1921*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc8] 1922*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0] 1923*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0] 1924*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1925*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.mask.cvttps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2) 1926*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1) 1927*9880d681SAndroid Build Coastguard Worker %res2 = add <2 x i64> %res, %res1 1928*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res2 1929*9880d681SAndroid Build Coastguard Worker} 1930*9880d681SAndroid Build Coastguard Worker 1931*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.cvttps2uqq.256(<4 x float>, <4 x i64>, i8) 1932*9880d681SAndroid Build Coastguard Worker 1933*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_cvtt_ps2uqq_256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) { 1934*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_256: 1935*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1936*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1937*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2uqq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x78,0xc8] 1938*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vcvttps2uqq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x78,0xc0] 1939*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0] 1940*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1941*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.cvttps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2) 1942*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1) 1943*9880d681SAndroid Build Coastguard Worker %res2 = add <4 x i64> %res, %res1 1944*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res2 1945*9880d681SAndroid Build Coastguard Worker} 1946*9880d681SAndroid Build Coastguard Worker 1947*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.reduce.pd.128(<2 x double>, i32, <2 x double>, i8) 1948*9880d681SAndroid Build Coastguard Worker 1949*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_reduce_pd_128(<2 x double> %x0, <2 x double> %x2, i8 %x3) { 1950*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_reduce_pd_128: 1951*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1952*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1953*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreducepd $4, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x56,0xc8,0x04] 1954*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreducepd $8, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x08,0x56,0xc0,0x08] 1955*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 1956*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1957*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.reduce.pd.128(<2 x double> %x0, i32 4, <2 x double> %x2, i8 %x3) 1958*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.reduce.pd.128(<2 x double> %x0, i32 8, <2 x double> %x2, i8 -1) 1959*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 1960*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 1961*9880d681SAndroid Build Coastguard Worker} 1962*9880d681SAndroid Build Coastguard Worker 1963*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.reduce.pd.256(<4 x double>, i32, <4 x double>, i8) 1964*9880d681SAndroid Build Coastguard Worker 1965*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_reduce_pd_256(<4 x double> %x0, <4 x double> %x2, i8 %x3) { 1966*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_reduce_pd_256: 1967*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1968*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1969*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreducepd $4, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x56,0xc8,0x04] 1970*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreducepd $0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x56,0xc0,0x00] 1971*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0] 1972*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1973*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.reduce.pd.256(<4 x double> %x0, i32 4, <4 x double> %x2, i8 %x3) 1974*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.reduce.pd.256(<4 x double> %x0, i32 0, <4 x double> %x2, i8 -1) 1975*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 1976*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 1977*9880d681SAndroid Build Coastguard Worker} 1978*9880d681SAndroid Build Coastguard Worker 1979*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.reduce.ps.128(<4 x float>, i32, <4 x float>, i8) 1980*9880d681SAndroid Build Coastguard Worker 1981*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_reduce_ps_128(<4 x float> %x0, <4 x float> %x2, i8 %x3) { 1982*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_reduce_ps_128: 1983*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 1984*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 1985*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreduceps $4, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x56,0xc8,0x04] 1986*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreduceps $88, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x56,0xc0,0x58] 1987*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0] 1988*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 1989*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.reduce.ps.128(<4 x float> %x0, i32 4, <4 x float> %x2, i8 %x3) 1990*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.reduce.ps.128(<4 x float> %x0, i32 88, <4 x float> %x2, i8 -1) 1991*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 1992*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 1993*9880d681SAndroid Build Coastguard Worker} 1994*9880d681SAndroid Build Coastguard Worker 1995*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.reduce.ps.256(<8 x float>, i32, <8 x float>, i8) 1996*9880d681SAndroid Build Coastguard Worker 1997*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_reduce_ps_256(<8 x float> %x0, <8 x float> %x2, i8 %x3) { 1998*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_reduce_ps_256: 1999*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2000*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2001*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreduceps $11, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x56,0xc8,0x0b] 2002*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vreduceps $11, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0x7d,0x28,0x56,0xc0,0x0b] 2003*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0] 2004*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2005*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.reduce.ps.256(<8 x float> %x0, i32 11, <8 x float> %x2, i8 %x3) 2006*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.reduce.ps.256(<8 x float> %x0, i32 11, <8 x float> %x2, i8 -1) 2007*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 2008*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 2009*9880d681SAndroid Build Coastguard Worker} 2010*9880d681SAndroid Build Coastguard Worker 2011*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.range.pd.128(<2 x double>, <2 x double>, i32, <2 x double>, i8) 2012*9880d681SAndroid Build Coastguard Worker 2013*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_range_pd_128(<2 x double> %x0, <2 x double> %x1, <2 x double> %x3, i8 %x4) { 2014*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_range_pd_128: 2015*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2016*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2017*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangepd $4, %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x50,0xd1,0x04] 2018*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangepd $8, %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x08,0x50,0xc1,0x08] 2019*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0x58,0xc0] 2020*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2021*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.range.pd.128(<2 x double> %x0, <2 x double> %x1, i32 4, <2 x double> %x3, i8 %x4) 2022*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.range.pd.128(<2 x double> %x0, <2 x double> %x1, i32 8, <2 x double> %x3, i8 -1) 2023*9880d681SAndroid Build Coastguard Worker %res2 = fadd <2 x double> %res, %res1 2024*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res2 2025*9880d681SAndroid Build Coastguard Worker} 2026*9880d681SAndroid Build Coastguard Worker 2027*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.range.pd.256(<4 x double>, <4 x double>, i32, <4 x double>, i8) 2028*9880d681SAndroid Build Coastguard Worker 2029*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_range_pd_256(<4 x double> %x0, <4 x double> %x1, <4 x double> %x3, i8 %x4) { 2030*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_range_pd_256: 2031*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2032*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2033*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangepd $4, %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x50,0xd1,0x04] 2034*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangepd $88, %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x50,0xc1,0x58] 2035*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0] 2036*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2037*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.range.pd.256(<4 x double> %x0, <4 x double> %x1, i32 4, <4 x double> %x3, i8 %x4) 2038*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.range.pd.256(<4 x double> %x0, <4 x double> %x1, i32 88, <4 x double> %x3, i8 -1) 2039*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x double> %res, %res1 2040*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res2 2041*9880d681SAndroid Build Coastguard Worker} 2042*9880d681SAndroid Build Coastguard Worker 2043*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.avx512.mask.range.ps.128(<4 x float>, <4 x float>, i32, <4 x float>, i8) 2044*9880d681SAndroid Build Coastguard Worker 2045*9880d681SAndroid Build Coastguard Workerdefine <4 x float>@test_int_x86_avx512_mask_range_ps_128(<4 x float> %x0, <4 x float> %x1, <4 x float> %x3, i8 %x4) { 2046*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_range_ps_128: 2047*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2048*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2049*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangeps $4, %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x50,0xd1,0x04] 2050*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangeps $88, %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x50,0xc1,0x58] 2051*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc0] 2052*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2053*9880d681SAndroid Build Coastguard Worker %res = call <4 x float> @llvm.x86.avx512.mask.range.ps.128(<4 x float> %x0, <4 x float> %x1, i32 4, <4 x float> %x3, i8 %x4) 2054*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x float> @llvm.x86.avx512.mask.range.ps.128(<4 x float> %x0, <4 x float> %x1, i32 88, <4 x float> %x3, i8 -1) 2055*9880d681SAndroid Build Coastguard Worker %res2 = fadd <4 x float> %res, %res1 2056*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res2 2057*9880d681SAndroid Build Coastguard Worker} 2058*9880d681SAndroid Build Coastguard Worker 2059*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.range.ps.256(<8 x float>, <8 x float>, i32, <8 x float>, i8) 2060*9880d681SAndroid Build Coastguard Worker 2061*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_range_ps_256(<8 x float> %x0, <8 x float> %x1, <8 x float> %x3, i8 %x4) { 2062*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_range_ps_256: 2063*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2064*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2065*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangeps $4, %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x50,0xd1,0x04] 2066*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vrangeps $88, %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0x7d,0x28,0x50,0xc1,0x58] 2067*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6c,0x28,0x58,0xc0] 2068*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2069*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.range.ps.256(<8 x float> %x0, <8 x float> %x1, i32 4, <8 x float> %x3, i8 %x4) 2070*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.range.ps.256(<8 x float> %x0, <8 x float> %x1, i32 88, <8 x float> %x3, i8 -1) 2071*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x float> %res, %res1 2072*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res2 2073*9880d681SAndroid Build Coastguard Worker} 2074*9880d681SAndroid Build Coastguard Worker 2075*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double>, i32, <2 x double>, i8) 2076*9880d681SAndroid Build Coastguard Worker 2077*9880d681SAndroid Build Coastguard Workerdefine <2 x double>@test_int_x86_avx512_mask_vextractf64x2_256(<4 x double> %x0, <2 x double> %x2, i8 %x3) { 2078*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vextractf64x2_256: 2079*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2080*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2081*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x19,0xc1,0x01] 2082*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x19,0xc2,0x01] 2083*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x19,0xc0,0x01] 2084*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0] 2085*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x58,0xc2] 2086*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2087*9880d681SAndroid Build Coastguard Worker %res = call <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double> %x0,i32 1, <2 x double> %x2, i8 %x3) 2088*9880d681SAndroid Build Coastguard Worker %res2 = call <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double> %x0,i32 1, <2 x double> zeroinitializer, i8 %x3) 2089*9880d681SAndroid Build Coastguard Worker %res1 = call <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double> %x0,i32 1, <2 x double> zeroinitializer, i8 -1) 2090*9880d681SAndroid Build Coastguard Worker %res3 = fadd <2 x double> %res, %res1 2091*9880d681SAndroid Build Coastguard Worker %res4 = fadd <2 x double> %res3, %res2 2092*9880d681SAndroid Build Coastguard Worker ret <2 x double> %res4 2093*9880d681SAndroid Build Coastguard Worker} 2094*9880d681SAndroid Build Coastguard Worker 2095*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double>, <2 x double>, i32, <4 x double>, i8) 2096*9880d681SAndroid Build Coastguard Worker 2097*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_insertf64x2_256(<4 x double> %x0, <2 x double> %x1, <4 x double> %x3, i8 %x4) { 2098*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_insertf64x2_256: 2099*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2100*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2101*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x18,0xd1,0x01] 2102*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x18,0xd9,0x01] 2103*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x18,0xc1,0x01] 2104*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0] 2105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0] 2106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2107*9880d681SAndroid Build Coastguard Worker %res = call <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double> %x0, <2 x double> %x1, i32 1, <4 x double> %x3, i8 %x4) 2108*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double> %x0, <2 x double> %x1, i32 1, <4 x double> %x3, i8 -1) 2109*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double> %x0, <2 x double> %x1, i32 1, <4 x double> zeroinitializer, i8 %x4) 2110*9880d681SAndroid Build Coastguard Worker %res3 = fadd <4 x double> %res, %res1 2111*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res2, %res3 2112*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res4 2113*9880d681SAndroid Build Coastguard Worker} 2114*9880d681SAndroid Build Coastguard Worker 2115*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64>, <2 x i64>, i32, <4 x i64>, i8) 2116*9880d681SAndroid Build Coastguard Worker 2117*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_inserti64x2_256(<4 x i64> %x0, <2 x i64> %x1, <4 x i64> %x3, i8 %x4) { 2118*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_inserti64x2_256: 2119*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2120*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x38,0xd1,0x01] 2122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x38,0xd9,0x01] 2123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x38,0xc1,0x01] 2124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc0] 2125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc3] 2126*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2127*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64> %x0, <2 x i64> %x1, i32 1, <4 x i64> %x3, i8 %x4) 2128*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64> %x0, <2 x i64> %x1, i32 1, <4 x i64> %x3, i8 -1) 2129*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64> %x0, <2 x i64> %x1, i32 1, <4 x i64> zeroinitializer, i8 %x4) 2130*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i64> %res, %res1 2131*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res3, %res2 2132*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res4 2133*9880d681SAndroid Build Coastguard Worker} 2134*9880d681SAndroid Build Coastguard Worker 2135*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.fpclass.ps.128(<4 x float>, i32, i8) 2136*9880d681SAndroid Build Coastguard Worker 2137*9880d681SAndroid Build Coastguard Workerdefine i8 @test_int_x86_avx512_mask_fpclass_ps_128(<4 x float> %x0, i8 %x1) { 2138*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_fpclass_ps_128: 2139*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclassps $2, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x66,0xc0,0x02] 2142*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %ecx ## encoding: [0xc5,0xf9,0x93,0xc8] 2143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclassps $4, %xmm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x08,0x66,0xc0,0x04] 2144*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2145*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 2146*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2147*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2148*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.fpclass.ps.128(<4 x float> %x0, i32 2, i8 %x1) 2149*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.fpclass.ps.128(<4 x float> %x0, i32 4, i8 -1) 2150*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 2151*9880d681SAndroid Build Coastguard Worker ret i8 %res2 2152*9880d681SAndroid Build Coastguard Worker} 2153*9880d681SAndroid Build Coastguard Worker 2154*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.fpclass.ps.256(<8 x float>, i32, i8) 2155*9880d681SAndroid Build Coastguard Worker 2156*9880d681SAndroid Build Coastguard Workerdefine i8 @test_int_x86_avx512_mask_fpclass_ps_256(<8 x float> %x0, i8 %x1) { 2157*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_fpclass_ps_256: 2158*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclassps $2, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x66,0xc0,0x02] 2161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %ecx ## encoding: [0xc5,0xf9,0x93,0xc8] 2162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclassps $4, %ymm0, %k0 ## encoding: [0x62,0xf3,0x7d,0x28,0x66,0xc0,0x04] 2163*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 2165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2167*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.fpclass.ps.256(<8 x float> %x0, i32 2, i8 %x1) 2168*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.fpclass.ps.256(<8 x float> %x0, i32 4, i8 -1) 2169*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 2170*9880d681SAndroid Build Coastguard Worker ret i8 %res2 2171*9880d681SAndroid Build Coastguard Worker} 2172*9880d681SAndroid Build Coastguard Worker 2173*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.fpclass.pd.128(<2 x double>, i32, i8) 2174*9880d681SAndroid Build Coastguard Worker 2175*9880d681SAndroid Build Coastguard Workerdefine i8 @test_int_x86_avx512_mask_fpclass_pd_128(<2 x double> %x0, i8 %x1) { 2176*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_fpclass_pd_128: 2177*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclasspd $4, %xmm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x66,0xc0,0x04] 2180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %ecx ## encoding: [0xc5,0xf9,0x93,0xc8] 2181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclasspd $2, %xmm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x08,0x66,0xc0,0x02] 2182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 2184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2186*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.fpclass.pd.128(<2 x double> %x0, i32 4, i8 %x1) 2187*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.fpclass.pd.128(<2 x double> %x0, i32 2, i8 -1) 2188*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 2189*9880d681SAndroid Build Coastguard Worker ret i8 %res2 2190*9880d681SAndroid Build Coastguard Worker} 2191*9880d681SAndroid Build Coastguard Worker 2192*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.mask.fpclass.pd.256(<4 x double>, i32, i8) 2193*9880d681SAndroid Build Coastguard Worker 2194*9880d681SAndroid Build Coastguard Workerdefine i8 @test_int_x86_avx512_mask_fpclass_pd_256(<4 x double> %x0, i8 %x1) { 2195*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_fpclass_pd_256: 2196*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2197*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2198*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclasspd $2, %ymm0, %k0 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x66,0xc0,0x02] 2199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %ecx ## encoding: [0xc5,0xf9,0x93,0xc8] 2200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfpclasspd $4, %ymm0, %k0 ## encoding: [0x62,0xf3,0xfd,0x28,0x66,0xc0,0x04] 2201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addb %cl, %al ## encoding: [0x00,0xc8] 2203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2204*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2205*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.mask.fpclass.pd.256(<4 x double> %x0, i32 2, i8 %x1) 2206*9880d681SAndroid Build Coastguard Worker %res1 = call i8 @llvm.x86.avx512.mask.fpclass.pd.256(<4 x double> %x0, i32 4, i8 -1) 2207*9880d681SAndroid Build Coastguard Worker %res2 = add i8 %res, %res1 2208*9880d681SAndroid Build Coastguard Worker ret i8 %res2 2209*9880d681SAndroid Build Coastguard Worker} 2210*9880d681SAndroid Build Coastguard Worker 2211*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float>, <8 x float>, i8) 2212*9880d681SAndroid Build Coastguard Worker 2213*9880d681SAndroid Build Coastguard Workerdefine <8 x float>@test_int_x86_avx512_mask_broadcastf32x2_256(<4 x float> %x0, <8 x float> %x2, i8 %x3) { 2214*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_broadcastf32x2_256: 2215*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x19,0xc8] 2218*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x19,0xd0] 2219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x19,0xc0] 2220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xca] 2221*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0] 2222*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2223*9880d681SAndroid Build Coastguard Worker %res = call <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float> %x0, <8 x float> %x2, i8 %x3) 2224*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float> %x0, <8 x float> zeroinitializer, i8 %x3) 2225*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float> %x0, <8 x float> %x2, i8 -1) 2226*9880d681SAndroid Build Coastguard Worker %res3 = fadd <8 x float> %res, %res1 2227*9880d681SAndroid Build Coastguard Worker %res4 = fadd <8 x float> %res3, %res2 2228*9880d681SAndroid Build Coastguard Worker ret <8 x float> %res4 2229*9880d681SAndroid Build Coastguard Worker} 2230*9880d681SAndroid Build Coastguard Worker 2231*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.mask.broadcasti32x2.256(<4 x i32>, <8 x i32>, i8) 2232*9880d681SAndroid Build Coastguard Worker 2233*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_mask_broadcasti32x2_256(<4 x i32> %x0, <8 x i32> %x2, i8 %x3, i64 * %y_ptr) { 2234*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_broadcasti32x2_256: 2235*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2237*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 (%rsi), %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x59,0x0e] 2238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x59,0xd0] 2239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x59,0xc0] 2240*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xca] 2241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xc0] 2242*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2243*9880d681SAndroid Build Coastguard Worker %y_64 = load i64, i64 * %y_ptr 2244*9880d681SAndroid Build Coastguard Worker %y_v2i64 = insertelement <2 x i64> undef, i64 %y_64, i32 0 2245*9880d681SAndroid Build Coastguard Worker %y = bitcast <2 x i64> %y_v2i64 to <4 x i32> 2246*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.mask.broadcasti32x2.256(<4 x i32> %y, <8 x i32> %x2, i8 %x3) 2247*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x i32> @llvm.x86.avx512.mask.broadcasti32x2.256(<4 x i32> %x0, <8 x i32> zeroinitializer, i8 %x3) 2248*9880d681SAndroid Build Coastguard Worker %res2 = call <8 x i32> @llvm.x86.avx512.mask.broadcasti32x2.256(<4 x i32> %x0, <8 x i32> %x2, i8 -1) 2249*9880d681SAndroid Build Coastguard Worker %res3 = add <8 x i32> %res, %res1 2250*9880d681SAndroid Build Coastguard Worker %res4 = add <8 x i32> %res3, %res2 2251*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res4 2252*9880d681SAndroid Build Coastguard Worker} 2253*9880d681SAndroid Build Coastguard Worker 2254*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32>, <4 x i32>, i8) 2255*9880d681SAndroid Build Coastguard Worker 2256*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_mask_broadcasti32x2_128(<4 x i32> %x0, <4 x i32> %x2, i8 %x3) { 2257*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_broadcasti32x2_128: 2258*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x59,0xc8] 2261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x59,0xd0] 2262*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x59,0xc0] 2263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xca] 2264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xc0] 2265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2266*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32> %x0, <4 x i32> %x2, i8 %x3) 2267*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32> %x0, <4 x i32> zeroinitializer, i8 %x3) 2268*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32> %x0, <4 x i32> %x2, i8 -1) 2269*9880d681SAndroid Build Coastguard Worker %res3 = add <4 x i32> %res, %res1 2270*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i32> %res3, %res2 2271*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res4 2272*9880d681SAndroid Build Coastguard Worker} 2273*9880d681SAndroid Build Coastguard Worker 2274*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.cvtd2mask.128(<4 x i32>) 2275*9880d681SAndroid Build Coastguard Worker 2276*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_cvtd2mask_128(<4 x i32> %x0) { 2277*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtd2mask_128: 2278*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovd2m %xmm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x08,0x39,0xc0] 2280*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2281*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2283*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.cvtd2mask.128(<4 x i32> %x0) 2284*9880d681SAndroid Build Coastguard Worker ret i8 %res 2285*9880d681SAndroid Build Coastguard Worker} 2286*9880d681SAndroid Build Coastguard Worker 2287*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.cvtd2mask.256(<8 x i32>) 2288*9880d681SAndroid Build Coastguard Worker 2289*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_cvtd2mask_256(<8 x i32> %x0) { 2290*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtd2mask_256: 2291*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2292*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovd2m %ymm0, %k0 ## encoding: [0x62,0xf2,0x7e,0x28,0x39,0xc0] 2293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2296*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.cvtd2mask.256(<8 x i32> %x0) 2297*9880d681SAndroid Build Coastguard Worker ret i8 %res 2298*9880d681SAndroid Build Coastguard Worker} 2299*9880d681SAndroid Build Coastguard Worker 2300*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.cvtq2mask.128(<2 x i64>) 2301*9880d681SAndroid Build Coastguard Worker 2302*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_cvtq2mask_128(<2 x i64> %x0) { 2303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtq2mask_128: 2304*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovq2m %xmm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x08,0x39,0xc0] 2306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2308*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2309*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.cvtq2mask.128(<2 x i64> %x0) 2310*9880d681SAndroid Build Coastguard Worker ret i8 %res 2311*9880d681SAndroid Build Coastguard Worker} 2312*9880d681SAndroid Build Coastguard Worker 2313*9880d681SAndroid Build Coastguard Workerdeclare i8 @llvm.x86.avx512.cvtq2mask.256(<4 x i64>) 2314*9880d681SAndroid Build Coastguard Worker 2315*9880d681SAndroid Build Coastguard Workerdefine i8@test_int_x86_avx512_cvtq2mask_256(<4 x i64> %x0) { 2316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtq2mask_256: 2317*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovq2m %ymm0, %k0 ## encoding: [0x62,0xf2,0xfe,0x28,0x39,0xc0] 2319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %k0, %eax ## encoding: [0xc5,0xf9,0x93,0xc0] 2320*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> 2321*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2322*9880d681SAndroid Build Coastguard Worker %res = call i8 @llvm.x86.avx512.cvtq2mask.256(<4 x i64> %x0) 2323*9880d681SAndroid Build Coastguard Worker ret i8 %res 2324*9880d681SAndroid Build Coastguard Worker} 2325*9880d681SAndroid Build Coastguard Worker 2326*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.avx512.cvtmask2d.128(i8) 2327*9880d681SAndroid Build Coastguard Worker 2328*9880d681SAndroid Build Coastguard Workerdefine <4 x i32>@test_int_x86_avx512_cvtmask2d_128(i8 %x0) { 2329*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2d_128: 2330*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k0 ## encoding: [0xc5,0xf9,0x92,0xc7] 2332*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2d %k0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0] 2333*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2334*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.avx512.cvtmask2d.128(i8 %x0) 2335*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 2336*9880d681SAndroid Build Coastguard Worker} 2337*9880d681SAndroid Build Coastguard Worker 2338*9880d681SAndroid Build Coastguard Workerdeclare <8 x i32> @llvm.x86.avx512.cvtmask2d.256(i8) 2339*9880d681SAndroid Build Coastguard Worker 2340*9880d681SAndroid Build Coastguard Workerdefine <8 x i32>@test_int_x86_avx512_cvtmask2d_256(i8 %x0) { 2341*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2d_256: 2342*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2343*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k0 ## encoding: [0xc5,0xf9,0x92,0xc7] 2344*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2d %k0, %ymm0 ## encoding: [0x62,0xf2,0x7e,0x28,0x38,0xc0] 2345*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2346*9880d681SAndroid Build Coastguard Worker %res = call <8 x i32> @llvm.x86.avx512.cvtmask2d.256(i8 %x0) 2347*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %res 2348*9880d681SAndroid Build Coastguard Worker} 2349*9880d681SAndroid Build Coastguard Worker 2350*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.avx512.cvtmask2q.128(i8) 2351*9880d681SAndroid Build Coastguard Worker 2352*9880d681SAndroid Build Coastguard Workerdefine <2 x i64>@test_int_x86_avx512_cvtmask2q_128(i8 %x0) { 2353*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2q_128: 2354*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2355*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k0 ## encoding: [0xc5,0xf9,0x92,0xc7] 2356*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2q %k0, %xmm0 ## encoding: [0x62,0xf2,0xfe,0x08,0x38,0xc0] 2357*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2358*9880d681SAndroid Build Coastguard Worker %res = call <2 x i64> @llvm.x86.avx512.cvtmask2q.128(i8 %x0) 2359*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %res 2360*9880d681SAndroid Build Coastguard Worker} 2361*9880d681SAndroid Build Coastguard Worker 2362*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.cvtmask2q.256(i8) 2363*9880d681SAndroid Build Coastguard Worker 2364*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_cvtmask2q_256(i8 %x0) { 2365*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_cvtmask2q_256: 2366*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2367*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k0 ## encoding: [0xc5,0xf9,0x92,0xc7] 2368*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpmovm2q %k0, %ymm0 ## encoding: [0x62,0xf2,0xfe,0x28,0x38,0xc0] 2369*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2370*9880d681SAndroid Build Coastguard Worker %res = call <4 x i64> @llvm.x86.avx512.cvtmask2q.256(i8 %x0) 2371*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res 2372*9880d681SAndroid Build Coastguard Worker} 2373*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.avx512.mask.broadcastf64x2.256(<2 x double>, <4 x double>, i8) 2374*9880d681SAndroid Build Coastguard Worker 2375*9880d681SAndroid Build Coastguard Workerdefine <4 x double>@test_int_x86_avx512_mask_broadcastf64x2_256(<2 x double> %x0, <4 x double> %x2, i8 %mask) { 2376*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_broadcastf64x2_256: 2377*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %XMM0<def> %XMM0<kill> %YMM0<def> 2379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshuff64x2 $0, %ymm0, %ymm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x23,0xd0,0x00] 2381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} {z} = ymm0[0,1,0,1] 2382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshuff64x2 $0, %ymm0, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x23,0xc8,0x00] 2383*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,1,0,1] 2384*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshuff64x2 $0, %ymm0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x23,0xc0,0x00] 2385*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 = ymm0[0,1,0,1] 2386*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc1] 2387*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0] 2388*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2389*9880d681SAndroid Build Coastguard Worker 2390*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x double> @llvm.x86.avx512.mask.broadcastf64x2.256(<2 x double> %x0, <4 x double> %x2, i8 -1) 2391*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x double> @llvm.x86.avx512.mask.broadcastf64x2.256(<2 x double> %x0, <4 x double> %x2, i8 %mask) 2392*9880d681SAndroid Build Coastguard Worker %res3 = call <4 x double> @llvm.x86.avx512.mask.broadcastf64x2.256(<2 x double> %x0, <4 x double> zeroinitializer, i8 %mask) 2393*9880d681SAndroid Build Coastguard Worker %res4 = fadd <4 x double> %res1, %res2 2394*9880d681SAndroid Build Coastguard Worker %res5 = fadd <4 x double> %res3, %res4 2395*9880d681SAndroid Build Coastguard Worker ret <4 x double> %res5 2396*9880d681SAndroid Build Coastguard Worker} 2397*9880d681SAndroid Build Coastguard Worker 2398*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.avx512.mask.broadcasti64x2.256(<2 x i64>, <4 x i64>, i8) 2399*9880d681SAndroid Build Coastguard Worker 2400*9880d681SAndroid Build Coastguard Workerdefine <4 x i64>@test_int_x86_avx512_mask_broadcasti64x2_256(<2 x i64> %x0, <4 x i64> %x2, i8 %mask) { 2401*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_broadcasti64x2_256: 2402*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 2403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## kill: %XMM0<def> %XMM0<kill> %YMM0<def> 2404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf] 2405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshufi64x2 $0, %ymm0, %ymm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x43,0xd0,0x00] 2406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm2 {%k1} {z} = ymm0[0,1,0,1] 2407*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshufi64x2 $0, %ymm0, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x43,0xc8,0x00] 2408*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,1,0,1] 2409*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vshufi64x2 $0, %ymm0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x43,0xc0,0x00] 2410*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ## ymm0 = ymm0[0,1,0,1] 2411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc1] 2412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc0] 2413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq ## encoding: [0xc3] 2414*9880d681SAndroid Build Coastguard Worker 2415*9880d681SAndroid Build Coastguard Worker %res1 = call <4 x i64> @llvm.x86.avx512.mask.broadcasti64x2.256(<2 x i64> %x0, <4 x i64> %x2, i8 -1) 2416*9880d681SAndroid Build Coastguard Worker %res2 = call <4 x i64> @llvm.x86.avx512.mask.broadcasti64x2.256(<2 x i64> %x0, <4 x i64> %x2, i8 %mask) 2417*9880d681SAndroid Build Coastguard Worker %res3 = call <4 x i64> @llvm.x86.avx512.mask.broadcasti64x2.256(<2 x i64> %x0, <4 x i64> zeroinitializer, i8 %mask) 2418*9880d681SAndroid Build Coastguard Worker %res4 = add <4 x i64> %res1, %res2 2419*9880d681SAndroid Build Coastguard Worker %res5 = add <4 x i64> %res3, %res4 2420*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %res5 2421*9880d681SAndroid Build Coastguard Worker} 2422