397 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+d,+zvfh,+v -target-abi=ilp32d \3; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,ZVFH4; RUN: llc -mtriple=riscv64 -mattr=+d,+zvfh,+v -target-abi=lp64d \5; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,ZVFH6; RUN: llc -mtriple=riscv32 -mattr=+d,+zvfhmin,+v -target-abi=ilp32d \7; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,ZVFHMIN8; RUN: llc -mtriple=riscv64 -mattr=+d,+zvfhmin,+v -target-abi=lp64d \9; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,ZVFHMIN10 11define <2 x half> @vfsqrt_vv_v2f16(<2 x half> %va, <2 x i1> %m, i32 zeroext %evl) {12; ZVFH-LABEL: vfsqrt_vv_v2f16:13; ZVFH: # %bb.0:14; ZVFH-NEXT: vsetvli zero, a0, e16, mf4, ta, ma15; ZVFH-NEXT: vfsqrt.v v8, v8, v0.t16; ZVFH-NEXT: ret17;18; ZVFHMIN-LABEL: vfsqrt_vv_v2f16:19; ZVFHMIN: # %bb.0:20; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf4, ta, ma21; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8, v0.t22; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, ma23; ZVFHMIN-NEXT: vfsqrt.v v9, v9, v0.t24; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf4, ta, ma25; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9, v0.t26; ZVFHMIN-NEXT: ret27 %v = call <2 x half> @llvm.vp.sqrt.v2f16(<2 x half> %va, <2 x i1> %m, i32 %evl)28 ret <2 x half> %v29}30 31define <2 x half> @vfsqrt_vv_v2f16_unmasked(<2 x half> %va, i32 zeroext %evl) {32; ZVFH-LABEL: vfsqrt_vv_v2f16_unmasked:33; ZVFH: # %bb.0:34; ZVFH-NEXT: vsetvli zero, a0, e16, mf4, ta, ma35; ZVFH-NEXT: vfsqrt.v v8, v836; ZVFH-NEXT: ret37;38; ZVFHMIN-LABEL: vfsqrt_vv_v2f16_unmasked:39; ZVFHMIN: # %bb.0:40; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf4, ta, ma41; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v842; ZVFHMIN-NEXT: vsetvli zero, zero, e32, mf2, ta, ma43; ZVFHMIN-NEXT: vfsqrt.v v9, v944; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf4, ta, ma45; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v946; ZVFHMIN-NEXT: ret47 %v = call <2 x half> @llvm.vp.sqrt.v2f16(<2 x half> %va, <2 x i1> splat (i1 true), i32 %evl)48 ret <2 x half> %v49}50 51define <4 x half> @vfsqrt_vv_v4f16(<4 x half> %va, <4 x i1> %m, i32 zeroext %evl) {52; ZVFH-LABEL: vfsqrt_vv_v4f16:53; ZVFH: # %bb.0:54; ZVFH-NEXT: vsetvli zero, a0, e16, mf2, ta, ma55; ZVFH-NEXT: vfsqrt.v v8, v8, v0.t56; ZVFH-NEXT: ret57;58; ZVFHMIN-LABEL: vfsqrt_vv_v4f16:59; ZVFHMIN: # %bb.0:60; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf2, ta, ma61; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8, v0.t62; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, ma63; ZVFHMIN-NEXT: vfsqrt.v v9, v9, v0.t64; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf2, ta, ma65; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9, v0.t66; ZVFHMIN-NEXT: ret67 %v = call <4 x half> @llvm.vp.sqrt.v4f16(<4 x half> %va, <4 x i1> %m, i32 %evl)68 ret <4 x half> %v69}70 71define <4 x half> @vfsqrt_vv_v4f16_unmasked(<4 x half> %va, i32 zeroext %evl) {72; ZVFH-LABEL: vfsqrt_vv_v4f16_unmasked:73; ZVFH: # %bb.0:74; ZVFH-NEXT: vsetvli zero, a0, e16, mf2, ta, ma75; ZVFH-NEXT: vfsqrt.v v8, v876; ZVFH-NEXT: ret77;78; ZVFHMIN-LABEL: vfsqrt_vv_v4f16_unmasked:79; ZVFHMIN: # %bb.0:80; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf2, ta, ma81; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v882; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m1, ta, ma83; ZVFHMIN-NEXT: vfsqrt.v v9, v984; ZVFHMIN-NEXT: vsetvli zero, zero, e16, mf2, ta, ma85; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v986; ZVFHMIN-NEXT: ret87 %v = call <4 x half> @llvm.vp.sqrt.v4f16(<4 x half> %va, <4 x i1> splat (i1 true), i32 %evl)88 ret <4 x half> %v89}90 91define <8 x half> @vfsqrt_vv_v8f16(<8 x half> %va, <8 x i1> %m, i32 zeroext %evl) {92; ZVFH-LABEL: vfsqrt_vv_v8f16:93; ZVFH: # %bb.0:94; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma95; ZVFH-NEXT: vfsqrt.v v8, v8, v0.t96; ZVFH-NEXT: ret97;98; ZVFHMIN-LABEL: vfsqrt_vv_v8f16:99; ZVFHMIN: # %bb.0:100; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m1, ta, ma101; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8, v0.t102; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, ma103; ZVFHMIN-NEXT: vfsqrt.v v10, v10, v0.t104; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma105; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10, v0.t106; ZVFHMIN-NEXT: ret107 %v = call <8 x half> @llvm.vp.sqrt.v8f16(<8 x half> %va, <8 x i1> %m, i32 %evl)108 ret <8 x half> %v109}110 111define <8 x half> @vfsqrt_vv_v8f16_unmasked(<8 x half> %va, i32 zeroext %evl) {112; ZVFH-LABEL: vfsqrt_vv_v8f16_unmasked:113; ZVFH: # %bb.0:114; ZVFH-NEXT: vsetvli zero, a0, e16, m1, ta, ma115; ZVFH-NEXT: vfsqrt.v v8, v8116; ZVFH-NEXT: ret117;118; ZVFHMIN-LABEL: vfsqrt_vv_v8f16_unmasked:119; ZVFHMIN: # %bb.0:120; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m1, ta, ma121; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8122; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m2, ta, ma123; ZVFHMIN-NEXT: vfsqrt.v v10, v10124; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m1, ta, ma125; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10126; ZVFHMIN-NEXT: ret127 %v = call <8 x half> @llvm.vp.sqrt.v8f16(<8 x half> %va, <8 x i1> splat (i1 true), i32 %evl)128 ret <8 x half> %v129}130 131define <16 x half> @vfsqrt_vv_v16f16(<16 x half> %va, <16 x i1> %m, i32 zeroext %evl) {132; ZVFH-LABEL: vfsqrt_vv_v16f16:133; ZVFH: # %bb.0:134; ZVFH-NEXT: vsetvli zero, a0, e16, m2, ta, ma135; ZVFH-NEXT: vfsqrt.v v8, v8, v0.t136; ZVFH-NEXT: ret137;138; ZVFHMIN-LABEL: vfsqrt_vv_v16f16:139; ZVFHMIN: # %bb.0:140; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m2, ta, ma141; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8, v0.t142; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, ma143; ZVFHMIN-NEXT: vfsqrt.v v12, v12, v0.t144; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m2, ta, ma145; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12, v0.t146; ZVFHMIN-NEXT: ret147 %v = call <16 x half> @llvm.vp.sqrt.v16f16(<16 x half> %va, <16 x i1> %m, i32 %evl)148 ret <16 x half> %v149}150 151define <16 x half> @vfsqrt_vv_v16f16_unmasked(<16 x half> %va, i32 zeroext %evl) {152; ZVFH-LABEL: vfsqrt_vv_v16f16_unmasked:153; ZVFH: # %bb.0:154; ZVFH-NEXT: vsetvli zero, a0, e16, m2, ta, ma155; ZVFH-NEXT: vfsqrt.v v8, v8156; ZVFH-NEXT: ret157;158; ZVFHMIN-LABEL: vfsqrt_vv_v16f16_unmasked:159; ZVFHMIN: # %bb.0:160; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m2, ta, ma161; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8162; ZVFHMIN-NEXT: vsetvli zero, zero, e32, m4, ta, ma163; ZVFHMIN-NEXT: vfsqrt.v v12, v12164; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m2, ta, ma165; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12166; ZVFHMIN-NEXT: ret167 %v = call <16 x half> @llvm.vp.sqrt.v16f16(<16 x half> %va, <16 x i1> splat (i1 true), i32 %evl)168 ret <16 x half> %v169}170 171define <2 x float> @vfsqrt_vv_v2f32(<2 x float> %va, <2 x i1> %m, i32 zeroext %evl) {172; CHECK-LABEL: vfsqrt_vv_v2f32:173; CHECK: # %bb.0:174; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma175; CHECK-NEXT: vfsqrt.v v8, v8, v0.t176; CHECK-NEXT: ret177 %v = call <2 x float> @llvm.vp.sqrt.v2f32(<2 x float> %va, <2 x i1> %m, i32 %evl)178 ret <2 x float> %v179}180 181define <2 x float> @vfsqrt_vv_v2f32_unmasked(<2 x float> %va, i32 zeroext %evl) {182; CHECK-LABEL: vfsqrt_vv_v2f32_unmasked:183; CHECK: # %bb.0:184; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma185; CHECK-NEXT: vfsqrt.v v8, v8186; CHECK-NEXT: ret187 %v = call <2 x float> @llvm.vp.sqrt.v2f32(<2 x float> %va, <2 x i1> splat (i1 true), i32 %evl)188 ret <2 x float> %v189}190 191define <4 x float> @vfsqrt_vv_v4f32(<4 x float> %va, <4 x i1> %m, i32 zeroext %evl) {192; CHECK-LABEL: vfsqrt_vv_v4f32:193; CHECK: # %bb.0:194; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma195; CHECK-NEXT: vfsqrt.v v8, v8, v0.t196; CHECK-NEXT: ret197 %v = call <4 x float> @llvm.vp.sqrt.v4f32(<4 x float> %va, <4 x i1> %m, i32 %evl)198 ret <4 x float> %v199}200 201define <4 x float> @vfsqrt_vv_v4f32_unmasked(<4 x float> %va, i32 zeroext %evl) {202; CHECK-LABEL: vfsqrt_vv_v4f32_unmasked:203; CHECK: # %bb.0:204; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma205; CHECK-NEXT: vfsqrt.v v8, v8206; CHECK-NEXT: ret207 %v = call <4 x float> @llvm.vp.sqrt.v4f32(<4 x float> %va, <4 x i1> splat (i1 true), i32 %evl)208 ret <4 x float> %v209}210 211define <8 x float> @vfsqrt_vv_v8f32(<8 x float> %va, <8 x i1> %m, i32 zeroext %evl) {212; CHECK-LABEL: vfsqrt_vv_v8f32:213; CHECK: # %bb.0:214; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma215; CHECK-NEXT: vfsqrt.v v8, v8, v0.t216; CHECK-NEXT: ret217 %v = call <8 x float> @llvm.vp.sqrt.v8f32(<8 x float> %va, <8 x i1> %m, i32 %evl)218 ret <8 x float> %v219}220 221define <8 x float> @vfsqrt_vv_v8f32_unmasked(<8 x float> %va, i32 zeroext %evl) {222; CHECK-LABEL: vfsqrt_vv_v8f32_unmasked:223; CHECK: # %bb.0:224; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma225; CHECK-NEXT: vfsqrt.v v8, v8226; CHECK-NEXT: ret227 %v = call <8 x float> @llvm.vp.sqrt.v8f32(<8 x float> %va, <8 x i1> splat (i1 true), i32 %evl)228 ret <8 x float> %v229}230 231define <16 x float> @vfsqrt_vv_v16f32(<16 x float> %va, <16 x i1> %m, i32 zeroext %evl) {232; CHECK-LABEL: vfsqrt_vv_v16f32:233; CHECK: # %bb.0:234; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma235; CHECK-NEXT: vfsqrt.v v8, v8, v0.t236; CHECK-NEXT: ret237 %v = call <16 x float> @llvm.vp.sqrt.v16f32(<16 x float> %va, <16 x i1> %m, i32 %evl)238 ret <16 x float> %v239}240 241define <16 x float> @vfsqrt_vv_v16f32_unmasked(<16 x float> %va, i32 zeroext %evl) {242; CHECK-LABEL: vfsqrt_vv_v16f32_unmasked:243; CHECK: # %bb.0:244; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma245; CHECK-NEXT: vfsqrt.v v8, v8246; CHECK-NEXT: ret247 %v = call <16 x float> @llvm.vp.sqrt.v16f32(<16 x float> %va, <16 x i1> splat (i1 true), i32 %evl)248 ret <16 x float> %v249}250 251define <2 x double> @vfsqrt_vv_v2f64(<2 x double> %va, <2 x i1> %m, i32 zeroext %evl) {252; CHECK-LABEL: vfsqrt_vv_v2f64:253; CHECK: # %bb.0:254; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma255; CHECK-NEXT: vfsqrt.v v8, v8, v0.t256; CHECK-NEXT: ret257 %v = call <2 x double> @llvm.vp.sqrt.v2f64(<2 x double> %va, <2 x i1> %m, i32 %evl)258 ret <2 x double> %v259}260 261define <2 x double> @vfsqrt_vv_v2f64_unmasked(<2 x double> %va, i32 zeroext %evl) {262; CHECK-LABEL: vfsqrt_vv_v2f64_unmasked:263; CHECK: # %bb.0:264; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma265; CHECK-NEXT: vfsqrt.v v8, v8266; CHECK-NEXT: ret267 %v = call <2 x double> @llvm.vp.sqrt.v2f64(<2 x double> %va, <2 x i1> splat (i1 true), i32 %evl)268 ret <2 x double> %v269}270 271define <4 x double> @vfsqrt_vv_v4f64(<4 x double> %va, <4 x i1> %m, i32 zeroext %evl) {272; CHECK-LABEL: vfsqrt_vv_v4f64:273; CHECK: # %bb.0:274; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma275; CHECK-NEXT: vfsqrt.v v8, v8, v0.t276; CHECK-NEXT: ret277 %v = call <4 x double> @llvm.vp.sqrt.v4f64(<4 x double> %va, <4 x i1> %m, i32 %evl)278 ret <4 x double> %v279}280 281define <4 x double> @vfsqrt_vv_v4f64_unmasked(<4 x double> %va, i32 zeroext %evl) {282; CHECK-LABEL: vfsqrt_vv_v4f64_unmasked:283; CHECK: # %bb.0:284; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma285; CHECK-NEXT: vfsqrt.v v8, v8286; CHECK-NEXT: ret287 %v = call <4 x double> @llvm.vp.sqrt.v4f64(<4 x double> %va, <4 x i1> splat (i1 true), i32 %evl)288 ret <4 x double> %v289}290 291define <8 x double> @vfsqrt_vv_v8f64(<8 x double> %va, <8 x i1> %m, i32 zeroext %evl) {292; CHECK-LABEL: vfsqrt_vv_v8f64:293; CHECK: # %bb.0:294; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma295; CHECK-NEXT: vfsqrt.v v8, v8, v0.t296; CHECK-NEXT: ret297 %v = call <8 x double> @llvm.vp.sqrt.v8f64(<8 x double> %va, <8 x i1> %m, i32 %evl)298 ret <8 x double> %v299}300 301define <8 x double> @vfsqrt_vv_v8f64_unmasked(<8 x double> %va, i32 zeroext %evl) {302; CHECK-LABEL: vfsqrt_vv_v8f64_unmasked:303; CHECK: # %bb.0:304; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma305; CHECK-NEXT: vfsqrt.v v8, v8306; CHECK-NEXT: ret307 %v = call <8 x double> @llvm.vp.sqrt.v8f64(<8 x double> %va, <8 x i1> splat (i1 true), i32 %evl)308 ret <8 x double> %v309}310 311define <15 x double> @vfsqrt_vv_v15f64(<15 x double> %va, <15 x i1> %m, i32 zeroext %evl) {312; CHECK-LABEL: vfsqrt_vv_v15f64:313; CHECK: # %bb.0:314; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma315; CHECK-NEXT: vfsqrt.v v8, v8, v0.t316; CHECK-NEXT: ret317 %v = call <15 x double> @llvm.vp.sqrt.v15f64(<15 x double> %va, <15 x i1> %m, i32 %evl)318 ret <15 x double> %v319}320 321define <15 x double> @vfsqrt_vv_v15f64_unmasked(<15 x double> %va, i32 zeroext %evl) {322; CHECK-LABEL: vfsqrt_vv_v15f64_unmasked:323; CHECK: # %bb.0:324; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma325; CHECK-NEXT: vfsqrt.v v8, v8326; CHECK-NEXT: ret327 %v = call <15 x double> @llvm.vp.sqrt.v15f64(<15 x double> %va, <15 x i1> splat (i1 true), i32 %evl)328 ret <15 x double> %v329}330 331define <16 x double> @vfsqrt_vv_v16f64(<16 x double> %va, <16 x i1> %m, i32 zeroext %evl) {332; CHECK-LABEL: vfsqrt_vv_v16f64:333; CHECK: # %bb.0:334; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma335; CHECK-NEXT: vfsqrt.v v8, v8, v0.t336; CHECK-NEXT: ret337 %v = call <16 x double> @llvm.vp.sqrt.v16f64(<16 x double> %va, <16 x i1> %m, i32 %evl)338 ret <16 x double> %v339}340 341define <16 x double> @vfsqrt_vv_v16f64_unmasked(<16 x double> %va, i32 zeroext %evl) {342; CHECK-LABEL: vfsqrt_vv_v16f64_unmasked:343; CHECK: # %bb.0:344; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma345; CHECK-NEXT: vfsqrt.v v8, v8346; CHECK-NEXT: ret347 %v = call <16 x double> @llvm.vp.sqrt.v16f64(<16 x double> %va, <16 x i1> splat (i1 true), i32 %evl)348 ret <16 x double> %v349}350 351define <32 x double> @vfsqrt_vv_v32f64(<32 x double> %va, <32 x i1> %m, i32 zeroext %evl) {352; CHECK-LABEL: vfsqrt_vv_v32f64:353; CHECK: # %bb.0:354; CHECK-NEXT: li a2, 16355; CHECK-NEXT: vsetivli zero, 2, e8, mf4, ta, ma356; CHECK-NEXT: vslidedown.vi v24, v0, 2357; CHECK-NEXT: mv a1, a0358; CHECK-NEXT: bltu a0, a2, .LBB26_2359; CHECK-NEXT: # %bb.1:360; CHECK-NEXT: li a1, 16361; CHECK-NEXT: .LBB26_2:362; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma363; CHECK-NEXT: vfsqrt.v v8, v8, v0.t364; CHECK-NEXT: addi a1, a0, -16365; CHECK-NEXT: sltu a0, a0, a1366; CHECK-NEXT: addi a0, a0, -1367; CHECK-NEXT: and a0, a0, a1368; CHECK-NEXT: vmv1r.v v0, v24369; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma370; CHECK-NEXT: vfsqrt.v v16, v16, v0.t371; CHECK-NEXT: ret372 %v = call <32 x double> @llvm.vp.sqrt.v32f64(<32 x double> %va, <32 x i1> %m, i32 %evl)373 ret <32 x double> %v374}375 376define <32 x double> @vfsqrt_vv_v32f64_unmasked(<32 x double> %va, i32 zeroext %evl) {377; CHECK-LABEL: vfsqrt_vv_v32f64_unmasked:378; CHECK: # %bb.0:379; CHECK-NEXT: li a2, 16380; CHECK-NEXT: mv a1, a0381; CHECK-NEXT: bltu a0, a2, .LBB27_2382; CHECK-NEXT: # %bb.1:383; CHECK-NEXT: li a1, 16384; CHECK-NEXT: .LBB27_2:385; CHECK-NEXT: vsetvli zero, a1, e64, m8, ta, ma386; CHECK-NEXT: vfsqrt.v v8, v8387; CHECK-NEXT: addi a1, a0, -16388; CHECK-NEXT: sltu a0, a0, a1389; CHECK-NEXT: addi a0, a0, -1390; CHECK-NEXT: and a0, a0, a1391; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma392; CHECK-NEXT: vfsqrt.v v16, v16393; CHECK-NEXT: ret394 %v = call <32 x double> @llvm.vp.sqrt.v32f64(<32 x double> %va, <32 x i1> splat (i1 true), i32 %evl)395 ret <32 x double> %v396}397