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 -mattr=+avx512f | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 5*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_x86_vfnmadd_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfnmadd_ps_z: 9*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %zmm2, %zmm1, %zmm0 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 12*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 4) nounwind 13*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 14*9880d681SAndroid Build Coastguard Worker} 15*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.vfnmadd.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) nounwind readnone 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_vfnmadd_ps(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd_ps: 19*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %zmm2, %zmm1, %zmm0 {%k1} 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 23*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 4) nounwind 24*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_x86_vfnmadd_pd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 28*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfnmadd_pd_z: 29*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %zmm2, %zmm1, %zmm0 31*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 32*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 4) nounwind 33*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 34*9880d681SAndroid Build Coastguard Worker} 35*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask.vfnmadd.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) nounwind readnone 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_vfnmadd_pd(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 38*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmadd_pd: 39*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 40*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 41*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %zmm2, %zmm1, %zmm0 {%k1} 42*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 43*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 4) nounwind 44*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 45*9880d681SAndroid Build Coastguard Worker} 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_x86_vfnmsubps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 48*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfnmsubps_z: 49*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm0 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 52*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 4) nounwind 53*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.vfnmsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) nounwind readnone 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_vfnmsub_ps(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 58*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub_ps: 59*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm0 {%k1} 62*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 63*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 4) nounwind 64*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_x86_vfnmsubpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 68*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfnmsubpd_z: 69*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 72*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 4) nounwind 73*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 74*9880d681SAndroid Build Coastguard Worker} 75*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) nounwind readnone 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_vfnmsub_pd(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 78*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfnmsub_pd: 79*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 80*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 81*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 {%k1} 82*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 83*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 4) nounwind 84*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 85*9880d681SAndroid Build Coastguard Worker} 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_x86_vfmaddsubps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 88*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfmaddsubps_z: 89*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 90*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %zmm2, %zmm1, %zmm0 91*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 92*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 4) nounwind 93*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 94*9880d681SAndroid Build Coastguard Worker} 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_fmaddsub_ps(<16 x float> %a, <16 x float> %b, <16 x float> %c, i16 %mask) { 97*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_fmaddsub_ps: 98*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 99*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 100*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %zmm2, %zmm1, %zmm0 {%k1} 101*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 102*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.512(<16 x float> %a, <16 x float> %b, <16 x float> %c, i16 %mask, i32 4) 103*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 104*9880d681SAndroid Build Coastguard Worker} 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) nounwind readnone 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_x86_vfmaddsubpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 109*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_x86_vfmaddsubpd_z: 110*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %zmm2, %zmm1, %zmm0 112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 113*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 4) nounwind 114*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 115*9880d681SAndroid Build Coastguard Worker} 116*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) nounwind readnone 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_vfmaddsub_pd(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 119*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_vfmaddsub_pd: 120*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %zmm2, %zmm1, %zmm0 {%k1} 123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 124*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 4) nounwind 125*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 126*9880d681SAndroid Build Coastguard Worker} 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask_vfmaddsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 129*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_pd_512: 130*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %zmm2, %zmm1, %zmm3 {%k1} 134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 137*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 138*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 139*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 140*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 141*9880d681SAndroid Build Coastguard Worker} 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask3_vfmaddsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 146*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_pd_512: 147*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 148*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 149*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231pd %zmm1, %zmm0, %zmm3 {%k1} 151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 154*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 155*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask3.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 156*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 157*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 158*9880d681SAndroid Build Coastguard Worker} 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_maskz_vfmaddsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_pd_512: 164*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 167*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd %zmm2, %zmm1, %zmm3 {%k1} {z} 168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 169*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 170*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 171*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 172*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.maskz.vfmaddsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 173*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 174*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 175*9880d681SAndroid Build Coastguard Worker} 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask_vfmaddsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 178*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmaddsub_ps_512: 179*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %zmm2, %zmm1, %zmm3 {%k1} 183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 186*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 187*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 188*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 189*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 190*9880d681SAndroid Build Coastguard Worker} 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask3_vfmaddsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 195*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmaddsub_ps_512: 196*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 197*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 198*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 199*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub231ps %zmm1, %zmm0, %zmm3 {%k1} 200*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 201*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 203*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 204*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask3.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 205*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 206*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_maskz_vfmaddsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmaddsub_ps_512: 213*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps %zmm2, %zmm1, %zmm3 {%k1} {z} 217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmaddsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 218*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 219*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 220*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 221*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.maskz.vfmaddsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 222*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 223*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 224*9880d681SAndroid Build Coastguard Worker} 225*9880d681SAndroid Build Coastguard Worker 226*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask3_vfmsubadd_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 229*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_pd_512: 230*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 231*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 232*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 233*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231pd %zmm1, %zmm0, %zmm3 {%k1} 234*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 235*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 237*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 238*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask3.vfmsubadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 239*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 240*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask3_vfmsubadd_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 246*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsubadd_ps_512: 247*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 248*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 249*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 250*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd231ps %zmm1, %zmm0, %zmm3 {%k1} 251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsubadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 252*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 253*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 254*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 255*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask3.vfmsubadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 256*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 257*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrb_rne(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 261*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrb_rne: 262*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 {%k1} 265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 266*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 0) nounwind 267*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 268*9880d681SAndroid Build Coastguard Worker} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrb_rtn(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrb_rtn: 272*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rd-sae}, %zmm2, %zmm1, %zmm0 {%k1} 275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 276*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 1) nounwind 277*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 278*9880d681SAndroid Build Coastguard Worker} 279*9880d681SAndroid Build Coastguard Worker 280*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrb_rtp(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 281*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrb_rtp: 282*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 283*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 284*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {ru-sae}, %zmm2, %zmm1, %zmm0 {%k1} 285*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 286*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 2) nounwind 287*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 288*9880d681SAndroid Build Coastguard Worker} 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrb_rtz(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 291*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrb_rtz: 292*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 293*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rz-sae}, %zmm2, %zmm1, %zmm0 {%k1} 295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 296*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 3) nounwind 297*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrb_current(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask) { 301*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrb_current: 302*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 304*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %zmm2, %zmm1, %zmm0 {%k1} 305*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 306*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 %mask, i32 4) nounwind 307*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 308*9880d681SAndroid Build Coastguard Worker} 309*9880d681SAndroid Build Coastguard Worker 310*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrbz_rne(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 311*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrbz_rne: 312*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 313*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 314*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 315*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 0) nounwind 316*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 317*9880d681SAndroid Build Coastguard Worker} 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrbz_rtn(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 320*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrbz_rtn: 321*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 322*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rd-sae}, %zmm2, %zmm1, %zmm0 323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 324*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 1) nounwind 325*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 326*9880d681SAndroid Build Coastguard Worker} 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrbz_rtp(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 329*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrbz_rtp: 330*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {ru-sae}, %zmm2, %zmm1, %zmm0 332*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 333*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 2) nounwind 334*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 335*9880d681SAndroid Build Coastguard Worker} 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrbz_rtz(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 338*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrbz_rtz: 339*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 340*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rz-sae}, %zmm2, %zmm1, %zmm0 341*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 342*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 3) nounwind 343*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @test_mask_round_vfmadd512_ps_rrbz_current(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { 347*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_ps_rrbz_current: 348*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 349*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %zmm2, %zmm1, %zmm0 350*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 351*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2, i16 -1, i32 4) nounwind 352*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask3.vfmsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 356*9880d681SAndroid Build Coastguard Worker 357*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask3_vfmsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 358*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_pd_512: 359*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 360*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 361*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 362*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231pd %zmm1, %zmm0, %zmm3 {%k1} 363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 365*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 366*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask3.vfmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 367*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask3.vfmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 368*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 369*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 370*9880d681SAndroid Build Coastguard Worker} 371*9880d681SAndroid Build Coastguard Worker 372*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask3.vfmsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask3_vfmsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmsub_ps_512: 376*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 377*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub231ps %zmm1, %zmm0, %zmm3 {%k1} 380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 381*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 382*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 383*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask3.vfmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 384*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask3.vfmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 385*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 386*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 387*9880d681SAndroid Build Coastguard Worker} 388*9880d681SAndroid Build Coastguard Worker 389*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrb_rne(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 390*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrb_rne: 391*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 392*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 393*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 {%k1} 394*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 395*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 0) nounwind 396*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 397*9880d681SAndroid Build Coastguard Worker} 398*9880d681SAndroid Build Coastguard Worker 399*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrb_rtn(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 400*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrb_rtn: 401*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 402*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 403*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rd-sae}, %zmm2, %zmm1, %zmm0 {%k1} 404*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 405*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 1) nounwind 406*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 407*9880d681SAndroid Build Coastguard Worker} 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrb_rtp(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 410*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrb_rtp: 411*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {ru-sae}, %zmm2, %zmm1, %zmm0 {%k1} 414*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 415*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 2) nounwind 416*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 417*9880d681SAndroid Build Coastguard Worker} 418*9880d681SAndroid Build Coastguard Worker 419*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrb_rtz(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 420*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrb_rtz: 421*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 422*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 423*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rz-sae}, %zmm2, %zmm1, %zmm0 {%k1} 424*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 425*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 3) nounwind 426*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 427*9880d681SAndroid Build Coastguard Worker} 428*9880d681SAndroid Build Coastguard Worker 429*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrb_current(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 430*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrb_current: 431*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm0 {%k1} 434*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 435*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 4) nounwind 436*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrbz_rne(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 440*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrbz_rne: 441*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 442*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 443*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 444*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 0) nounwind 445*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 446*9880d681SAndroid Build Coastguard Worker} 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrbz_rtn(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 449*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrbz_rtn: 450*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 451*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rd-sae}, %zmm2, %zmm1, %zmm0 452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 453*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 1) nounwind 454*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 455*9880d681SAndroid Build Coastguard Worker} 456*9880d681SAndroid Build Coastguard Worker 457*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrbz_rtp(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrbz_rtp: 459*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 460*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {ru-sae}, %zmm2, %zmm1, %zmm0 461*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 462*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 2) nounwind 463*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 464*9880d681SAndroid Build Coastguard Worker} 465*9880d681SAndroid Build Coastguard Worker 466*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrbz_rtz(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 467*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrbz_rtz: 468*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rz-sae}, %zmm2, %zmm1, %zmm0 470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 471*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 3) nounwind 472*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 473*9880d681SAndroid Build Coastguard Worker} 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfmadd512_pd_rrbz_current(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 476*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfmadd512_pd_rrbz_current: 477*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 478*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm0 479*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 480*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 4) nounwind 481*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Worker 484*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask_vfmadd_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 485*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_pd_512: 486*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 487*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 488*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm3 {%k1} 490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 491*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 492*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 493*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 494*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 495*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 496*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 497*9880d681SAndroid Build Coastguard Worker} 498*9880d681SAndroid Build Coastguard Worker 499*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask3.vfmadd.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 500*9880d681SAndroid Build Coastguard Worker 501*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask3_vfmadd_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 502*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_pd_512: 503*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 504*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 505*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 506*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231pd %zmm1, %zmm0, %zmm3 {%k1} 507*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 508*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 510*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask3.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 511*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask3.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 512*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 513*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 514*9880d681SAndroid Build Coastguard Worker} 515*9880d681SAndroid Build Coastguard Worker 516*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.maskz.vfmadd.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_maskz_vfmadd_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 519*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_pd_512: 520*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 521*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 522*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 523*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm3 {%k1} {z} 524*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 527*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.maskz.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 528*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.maskz.vfmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 529*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 530*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 531*9880d681SAndroid Build Coastguard Worker} 532*9880d681SAndroid Build Coastguard Worker 533*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask_vfmadd_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 534*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfmadd_ps_512: 535*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 536*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 537*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 538*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %zmm2, %zmm1, %zmm3 {%k1} 539*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 540*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 541*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 542*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 543*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 544*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 545*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 546*9880d681SAndroid Build Coastguard Worker} 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask3.vfmadd.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 549*9880d681SAndroid Build Coastguard Worker 550*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask3_vfmadd_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 551*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfmadd_ps_512: 552*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 553*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 554*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 555*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd231ps %zmm1, %zmm0, %zmm3 {%k1} 556*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 557*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 558*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 559*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask3.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 560*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask3.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 561*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 562*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 563*9880d681SAndroid Build Coastguard Worker} 564*9880d681SAndroid Build Coastguard Worker 565*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.maskz.vfmadd.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 566*9880d681SAndroid Build Coastguard Worker 567*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_maskz_vfmadd_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 568*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_maskz_vfmadd_ps_512: 569*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 570*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 571*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 572*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps %zmm2, %zmm1, %zmm3 {%k1} {z} 573*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 574*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 575*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 576*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.maskz.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 577*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.maskz.vfmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 578*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 579*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 580*9880d681SAndroid Build Coastguard Worker} 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Worker 583*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrb_rne(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 584*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrb_rne: 585*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 586*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 587*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 {%k1} 588*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 589*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 0) nounwind 590*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 591*9880d681SAndroid Build Coastguard Worker} 592*9880d681SAndroid Build Coastguard Worker 593*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrb_rtn(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 594*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrb_rtn: 595*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 596*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 597*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rd-sae}, %zmm2, %zmm1, %zmm0 {%k1} 598*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 599*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 1) nounwind 600*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 601*9880d681SAndroid Build Coastguard Worker} 602*9880d681SAndroid Build Coastguard Worker 603*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrb_rtp(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 604*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrb_rtp: 605*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 606*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 607*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {ru-sae}, %zmm2, %zmm1, %zmm0 {%k1} 608*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 609*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 2) nounwind 610*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 611*9880d681SAndroid Build Coastguard Worker} 612*9880d681SAndroid Build Coastguard Worker 613*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrb_rtz(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 614*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrb_rtz: 615*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 616*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 617*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rz-sae}, %zmm2, %zmm1, %zmm0 {%k1} 618*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 619*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 3) nounwind 620*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 621*9880d681SAndroid Build Coastguard Worker} 622*9880d681SAndroid Build Coastguard Worker 623*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrb_current(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask) { 624*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrb_current: 625*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 626*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 627*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 {%k1} 628*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 629*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 %mask, i32 4) nounwind 630*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 631*9880d681SAndroid Build Coastguard Worker} 632*9880d681SAndroid Build Coastguard Worker 633*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrbz_rne(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 634*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrbz_rne: 635*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 636*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 637*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 638*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 0) nounwind 639*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 640*9880d681SAndroid Build Coastguard Worker} 641*9880d681SAndroid Build Coastguard Worker 642*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrbz_rtn(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 643*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrbz_rtn: 644*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 645*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rd-sae}, %zmm2, %zmm1, %zmm0 646*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 647*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 1) nounwind 648*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 649*9880d681SAndroid Build Coastguard Worker} 650*9880d681SAndroid Build Coastguard Worker 651*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrbz_rtp(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 652*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrbz_rtp: 653*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 654*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {ru-sae}, %zmm2, %zmm1, %zmm0 655*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 656*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 2) nounwind 657*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 658*9880d681SAndroid Build Coastguard Worker} 659*9880d681SAndroid Build Coastguard Worker 660*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrbz_rtz(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 661*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrbz_rtz: 662*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 663*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rz-sae}, %zmm2, %zmm1, %zmm0 664*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 665*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 3) nounwind 666*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 667*9880d681SAndroid Build Coastguard Worker} 668*9880d681SAndroid Build Coastguard Worker 669*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_mask_round_vfnmsub512_pd_rrbz_current(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { 670*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mask_round_vfnmsub512_pd_rrbz_current: 671*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 672*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 673*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 674*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2, i8 -1, i32 4) nounwind 675*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res 676*9880d681SAndroid Build Coastguard Worker} 677*9880d681SAndroid Build Coastguard Worker 678*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask_vfnmsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 679*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_pd_512: 680*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 681*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 682*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 683*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm3 {%k1} 684*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 685*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 686*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 687*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 688*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask.vfnmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 689*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 690*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 691*9880d681SAndroid Build Coastguard Worker} 692*9880d681SAndroid Build Coastguard Worker 693*9880d681SAndroid Build Coastguard Workerdeclare <8 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i8, i32) 694*9880d681SAndroid Build Coastguard Worker 695*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask3_vfnmsub_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 696*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_pd_512: 697*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 698*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 699*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 700*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231pd %zmm1, %zmm0, %zmm3 {%k1} 701*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213pd {rn-sae}, %zmm2, %zmm1, %zmm0 702*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 703*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 704*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 705*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask3.vfnmsub.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 706*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 707*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 708*9880d681SAndroid Build Coastguard Worker} 709*9880d681SAndroid Build Coastguard Worker 710*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask_vfnmsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 711*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmsub_ps_512: 712*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 713*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 714*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 715*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm3 {%k1} 716*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 717*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 718*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 719*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 720*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask.vfnmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 721*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 722*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 723*9880d681SAndroid Build Coastguard Worker} 724*9880d681SAndroid Build Coastguard Worker 725*9880d681SAndroid Build Coastguard Workerdeclare <16 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.512(<16 x float>, <16 x float>, <16 x float>, i16, i32) 726*9880d681SAndroid Build Coastguard Worker 727*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask3_vfnmsub_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 728*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask3_vfnmsub_ps_512: 729*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 730*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 731*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm2, %zmm3 732*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub231ps %zmm1, %zmm0, %zmm3 {%k1} 733*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmsub213ps {rn-sae}, %zmm2, %zmm1, %zmm0 734*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 735*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 736*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 737*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask3.vfnmsub.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 738*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 739*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 740*9880d681SAndroid Build Coastguard Worker} 741*9880d681SAndroid Build Coastguard Worker 742*9880d681SAndroid Build Coastguard Workerdefine <8 x double>@test_int_x86_avx512_mask_vfnmadd_pd_512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3){ 743*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_pd_512: 744*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 745*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 746*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 747*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd %zmm2, %zmm1, %zmm3 {%k1} 748*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 749*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddpd %zmm0, %zmm3, %zmm0 750*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 751*9880d681SAndroid Build Coastguard Worker %res = call <8 x double> @llvm.x86.avx512.mask.vfnmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 %x3, i32 4) 752*9880d681SAndroid Build Coastguard Worker %res1 = call <8 x double> @llvm.x86.avx512.mask.vfnmadd.pd.512(<8 x double> %x0, <8 x double> %x1, <8 x double> %x2, i8 -1, i32 0) 753*9880d681SAndroid Build Coastguard Worker %res2 = fadd <8 x double> %res, %res1 754*9880d681SAndroid Build Coastguard Worker ret <8 x double> %res2 755*9880d681SAndroid Build Coastguard Worker} 756*9880d681SAndroid Build Coastguard Worker 757*9880d681SAndroid Build Coastguard Workerdefine <16 x float>@test_int_x86_avx512_mask_vfnmadd_ps_512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3){ 758*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_int_x86_avx512_mask_vfnmadd_ps_512: 759*9880d681SAndroid Build Coastguard Worker; CHECK: ## BB#0: 760*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: kmovw %edi, %k1 761*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %zmm0, %zmm3 762*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps %zmm2, %zmm1, %zmm3 {%k1} 763*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vfnmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm0 764*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vaddps %zmm0, %zmm3, %zmm0 765*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 766*9880d681SAndroid Build Coastguard Worker %res = call <16 x float> @llvm.x86.avx512.mask.vfnmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 %x3, i32 4) 767*9880d681SAndroid Build Coastguard Worker %res1 = call <16 x float> @llvm.x86.avx512.mask.vfnmadd.ps.512(<16 x float> %x0, <16 x float> %x1, <16 x float> %x2, i16 -1, i32 0) 768*9880d681SAndroid Build Coastguard Worker %res2 = fadd <16 x float> %res, %res1 769*9880d681SAndroid Build Coastguard Worker ret <16 x float> %res2 770*9880d681SAndroid Build Coastguard Worker} 771