1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=riscv32 -mattr=+d,+zfh,+experimental-v -target-abi=ilp32d \ 3; RUN: -verify-machineinstrs < %s | FileCheck %s 4; RUN: llc -mtriple=riscv64 -mattr=+d,+zfh,+experimental-v -target-abi=lp64d \ 5; RUN: -verify-machineinstrs < %s | FileCheck %s 6 7declare <vscale x 1 x half> @llvm.maxnum.nxv1f16(<vscale x 1 x half>, <vscale x 1 x half>) 8 9define <vscale x 1 x half> @vfmax_nxv1f16_vv(<vscale x 1 x half> %a, <vscale x 1 x half> %b) { 10; CHECK-LABEL: vfmax_nxv1f16_vv: 11; CHECK: # %bb.0: 12; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, mu 13; CHECK-NEXT: vfmax.vv v8, v8, v9 14; CHECK-NEXT: ret 15 %v = call <vscale x 1 x half> @llvm.maxnum.nxv1f16(<vscale x 1 x half> %a, <vscale x 1 x half> %b) 16 ret <vscale x 1 x half> %v 17} 18 19define <vscale x 1 x half> @vfmax_nxv1f16_vf(<vscale x 1 x half> %a, half %b) { 20; CHECK-LABEL: vfmax_nxv1f16_vf: 21; CHECK: # %bb.0: 22; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, mu 23; CHECK-NEXT: vfmax.vf v8, v8, fa0 24; CHECK-NEXT: ret 25 %head = insertelement <vscale x 1 x half> undef, half %b, i32 0 26 %splat = shufflevector <vscale x 1 x half> %head, <vscale x 1 x half> undef, <vscale x 1 x i32> zeroinitializer 27 %v = call <vscale x 1 x half> @llvm.maxnum.nxv1f16(<vscale x 1 x half> %a, <vscale x 1 x half> %splat) 28 ret <vscale x 1 x half> %v 29} 30 31declare <vscale x 2 x half> @llvm.maxnum.nxv2f16(<vscale x 2 x half>, <vscale x 2 x half>) 32 33define <vscale x 2 x half> @vfmax_nxv2f16_vv(<vscale x 2 x half> %a, <vscale x 2 x half> %b) { 34; CHECK-LABEL: vfmax_nxv2f16_vv: 35; CHECK: # %bb.0: 36; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, mu 37; CHECK-NEXT: vfmax.vv v8, v8, v9 38; CHECK-NEXT: ret 39 %v = call <vscale x 2 x half> @llvm.maxnum.nxv2f16(<vscale x 2 x half> %a, <vscale x 2 x half> %b) 40 ret <vscale x 2 x half> %v 41} 42 43define <vscale x 2 x half> @vfmax_nxv2f16_vf(<vscale x 2 x half> %a, half %b) { 44; CHECK-LABEL: vfmax_nxv2f16_vf: 45; CHECK: # %bb.0: 46; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, mu 47; CHECK-NEXT: vfmax.vf v8, v8, fa0 48; CHECK-NEXT: ret 49 %head = insertelement <vscale x 2 x half> undef, half %b, i32 0 50 %splat = shufflevector <vscale x 2 x half> %head, <vscale x 2 x half> undef, <vscale x 2 x i32> zeroinitializer 51 %v = call <vscale x 2 x half> @llvm.maxnum.nxv2f16(<vscale x 2 x half> %a, <vscale x 2 x half> %splat) 52 ret <vscale x 2 x half> %v 53} 54 55declare <vscale x 4 x half> @llvm.maxnum.nxv4f16(<vscale x 4 x half>, <vscale x 4 x half>) 56 57define <vscale x 4 x half> @vfmax_nxv4f16_vv(<vscale x 4 x half> %a, <vscale x 4 x half> %b) { 58; CHECK-LABEL: vfmax_nxv4f16_vv: 59; CHECK: # %bb.0: 60; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, mu 61; CHECK-NEXT: vfmax.vv v8, v8, v9 62; CHECK-NEXT: ret 63 %v = call <vscale x 4 x half> @llvm.maxnum.nxv4f16(<vscale x 4 x half> %a, <vscale x 4 x half> %b) 64 ret <vscale x 4 x half> %v 65} 66 67define <vscale x 4 x half> @vfmax_nxv4f16_vf(<vscale x 4 x half> %a, half %b) { 68; CHECK-LABEL: vfmax_nxv4f16_vf: 69; CHECK: # %bb.0: 70; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, mu 71; CHECK-NEXT: vfmax.vf v8, v8, fa0 72; CHECK-NEXT: ret 73 %head = insertelement <vscale x 4 x half> undef, half %b, i32 0 74 %splat = shufflevector <vscale x 4 x half> %head, <vscale x 4 x half> undef, <vscale x 4 x i32> zeroinitializer 75 %v = call <vscale x 4 x half> @llvm.maxnum.nxv4f16(<vscale x 4 x half> %a, <vscale x 4 x half> %splat) 76 ret <vscale x 4 x half> %v 77} 78 79declare <vscale x 8 x half> @llvm.maxnum.nxv8f16(<vscale x 8 x half>, <vscale x 8 x half>) 80 81define <vscale x 8 x half> @vfmax_nxv8f16_vv(<vscale x 8 x half> %a, <vscale x 8 x half> %b) { 82; CHECK-LABEL: vfmax_nxv8f16_vv: 83; CHECK: # %bb.0: 84; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, mu 85; CHECK-NEXT: vfmax.vv v8, v8, v10 86; CHECK-NEXT: ret 87 %v = call <vscale x 8 x half> @llvm.maxnum.nxv8f16(<vscale x 8 x half> %a, <vscale x 8 x half> %b) 88 ret <vscale x 8 x half> %v 89} 90 91define <vscale x 8 x half> @vfmax_nxv8f16_vf(<vscale x 8 x half> %a, half %b) { 92; CHECK-LABEL: vfmax_nxv8f16_vf: 93; CHECK: # %bb.0: 94; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, mu 95; CHECK-NEXT: vfmax.vf v8, v8, fa0 96; CHECK-NEXT: ret 97 %head = insertelement <vscale x 8 x half> undef, half %b, i32 0 98 %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> undef, <vscale x 8 x i32> zeroinitializer 99 %v = call <vscale x 8 x half> @llvm.maxnum.nxv8f16(<vscale x 8 x half> %a, <vscale x 8 x half> %splat) 100 ret <vscale x 8 x half> %v 101} 102 103declare <vscale x 16 x half> @llvm.maxnum.nxv16f16(<vscale x 16 x half>, <vscale x 16 x half>) 104 105define <vscale x 16 x half> @vfmax_nxv16f16_vv(<vscale x 16 x half> %a, <vscale x 16 x half> %b) { 106; CHECK-LABEL: vfmax_nxv16f16_vv: 107; CHECK: # %bb.0: 108; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, mu 109; CHECK-NEXT: vfmax.vv v8, v8, v12 110; CHECK-NEXT: ret 111 %v = call <vscale x 16 x half> @llvm.maxnum.nxv16f16(<vscale x 16 x half> %a, <vscale x 16 x half> %b) 112 ret <vscale x 16 x half> %v 113} 114 115define <vscale x 16 x half> @vfmax_nxv16f16_vf(<vscale x 16 x half> %a, half %b) { 116; CHECK-LABEL: vfmax_nxv16f16_vf: 117; CHECK: # %bb.0: 118; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, mu 119; CHECK-NEXT: vfmax.vf v8, v8, fa0 120; CHECK-NEXT: ret 121 %head = insertelement <vscale x 16 x half> undef, half %b, i32 0 122 %splat = shufflevector <vscale x 16 x half> %head, <vscale x 16 x half> undef, <vscale x 16 x i32> zeroinitializer 123 %v = call <vscale x 16 x half> @llvm.maxnum.nxv16f16(<vscale x 16 x half> %a, <vscale x 16 x half> %splat) 124 ret <vscale x 16 x half> %v 125} 126 127declare <vscale x 32 x half> @llvm.maxnum.nxv32f16(<vscale x 32 x half>, <vscale x 32 x half>) 128 129define <vscale x 32 x half> @vfmax_nxv32f16_vv(<vscale x 32 x half> %a, <vscale x 32 x half> %b) { 130; CHECK-LABEL: vfmax_nxv32f16_vv: 131; CHECK: # %bb.0: 132; CHECK-NEXT: vsetvli a0, zero, e16, m8, ta, mu 133; CHECK-NEXT: vfmax.vv v8, v8, v16 134; CHECK-NEXT: ret 135 %v = call <vscale x 32 x half> @llvm.maxnum.nxv32f16(<vscale x 32 x half> %a, <vscale x 32 x half> %b) 136 ret <vscale x 32 x half> %v 137} 138 139define <vscale x 32 x half> @vfmax_nxv32f16_vf(<vscale x 32 x half> %a, half %b) { 140; CHECK-LABEL: vfmax_nxv32f16_vf: 141; CHECK: # %bb.0: 142; CHECK-NEXT: vsetvli a0, zero, e16, m8, ta, mu 143; CHECK-NEXT: vfmax.vf v8, v8, fa0 144; CHECK-NEXT: ret 145 %head = insertelement <vscale x 32 x half> undef, half %b, i32 0 146 %splat = shufflevector <vscale x 32 x half> %head, <vscale x 32 x half> undef, <vscale x 32 x i32> zeroinitializer 147 %v = call <vscale x 32 x half> @llvm.maxnum.nxv32f16(<vscale x 32 x half> %a, <vscale x 32 x half> %splat) 148 ret <vscale x 32 x half> %v 149} 150 151declare <vscale x 1 x float> @llvm.maxnum.nxv1f32(<vscale x 1 x float>, <vscale x 1 x float>) 152 153define <vscale x 1 x float> @vfmax_nxv1f32_vv(<vscale x 1 x float> %a, <vscale x 1 x float> %b) { 154; CHECK-LABEL: vfmax_nxv1f32_vv: 155; CHECK: # %bb.0: 156; CHECK-NEXT: vsetvli a0, zero, e32, mf2, ta, mu 157; CHECK-NEXT: vfmax.vv v8, v8, v9 158; CHECK-NEXT: ret 159 %v = call <vscale x 1 x float> @llvm.maxnum.nxv1f32(<vscale x 1 x float> %a, <vscale x 1 x float> %b) 160 ret <vscale x 1 x float> %v 161} 162 163define <vscale x 1 x float> @vfmax_nxv1f32_vf(<vscale x 1 x float> %a, float %b) { 164; CHECK-LABEL: vfmax_nxv1f32_vf: 165; CHECK: # %bb.0: 166; CHECK-NEXT: vsetvli a0, zero, e32, mf2, ta, mu 167; CHECK-NEXT: vfmax.vf v8, v8, fa0 168; CHECK-NEXT: ret 169 %head = insertelement <vscale x 1 x float> undef, float %b, i32 0 170 %splat = shufflevector <vscale x 1 x float> %head, <vscale x 1 x float> undef, <vscale x 1 x i32> zeroinitializer 171 %v = call <vscale x 1 x float> @llvm.maxnum.nxv1f32(<vscale x 1 x float> %a, <vscale x 1 x float> %splat) 172 ret <vscale x 1 x float> %v 173} 174 175declare <vscale x 2 x float> @llvm.maxnum.nxv2f32(<vscale x 2 x float>, <vscale x 2 x float>) 176 177define <vscale x 2 x float> @vfmax_nxv2f32_vv(<vscale x 2 x float> %a, <vscale x 2 x float> %b) { 178; CHECK-LABEL: vfmax_nxv2f32_vv: 179; CHECK: # %bb.0: 180; CHECK-NEXT: vsetvli a0, zero, e32, m1, ta, mu 181; CHECK-NEXT: vfmax.vv v8, v8, v9 182; CHECK-NEXT: ret 183 %v = call <vscale x 2 x float> @llvm.maxnum.nxv2f32(<vscale x 2 x float> %a, <vscale x 2 x float> %b) 184 ret <vscale x 2 x float> %v 185} 186 187define <vscale x 2 x float> @vfmax_nxv2f32_vf(<vscale x 2 x float> %a, float %b) { 188; CHECK-LABEL: vfmax_nxv2f32_vf: 189; CHECK: # %bb.0: 190; CHECK-NEXT: vsetvli a0, zero, e32, m1, ta, mu 191; CHECK-NEXT: vfmax.vf v8, v8, fa0 192; CHECK-NEXT: ret 193 %head = insertelement <vscale x 2 x float> undef, float %b, i32 0 194 %splat = shufflevector <vscale x 2 x float> %head, <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer 195 %v = call <vscale x 2 x float> @llvm.maxnum.nxv2f32(<vscale x 2 x float> %a, <vscale x 2 x float> %splat) 196 ret <vscale x 2 x float> %v 197} 198 199declare <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>) 200 201define <vscale x 4 x float> @vfmax_nxv4f32_vv(<vscale x 4 x float> %a, <vscale x 4 x float> %b) { 202; CHECK-LABEL: vfmax_nxv4f32_vv: 203; CHECK: # %bb.0: 204; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, mu 205; CHECK-NEXT: vfmax.vv v8, v8, v10 206; CHECK-NEXT: ret 207 %v = call <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> %a, <vscale x 4 x float> %b) 208 ret <vscale x 4 x float> %v 209} 210 211define <vscale x 4 x float> @vfmax_nxv4f32_vf(<vscale x 4 x float> %a, float %b) { 212; CHECK-LABEL: vfmax_nxv4f32_vf: 213; CHECK: # %bb.0: 214; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, mu 215; CHECK-NEXT: vfmax.vf v8, v8, fa0 216; CHECK-NEXT: ret 217 %head = insertelement <vscale x 4 x float> undef, float %b, i32 0 218 %splat = shufflevector <vscale x 4 x float> %head, <vscale x 4 x float> undef, <vscale x 4 x i32> zeroinitializer 219 %v = call <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> %a, <vscale x 4 x float> %splat) 220 ret <vscale x 4 x float> %v 221} 222 223declare <vscale x 8 x float> @llvm.maxnum.nxv8f32(<vscale x 8 x float>, <vscale x 8 x float>) 224 225define <vscale x 8 x float> @vfmax_nxv8f32_vv(<vscale x 8 x float> %a, <vscale x 8 x float> %b) { 226; CHECK-LABEL: vfmax_nxv8f32_vv: 227; CHECK: # %bb.0: 228; CHECK-NEXT: vsetvli a0, zero, e32, m4, ta, mu 229; CHECK-NEXT: vfmax.vv v8, v8, v12 230; CHECK-NEXT: ret 231 %v = call <vscale x 8 x float> @llvm.maxnum.nxv8f32(<vscale x 8 x float> %a, <vscale x 8 x float> %b) 232 ret <vscale x 8 x float> %v 233} 234 235define <vscale x 8 x float> @vfmax_nxv8f32_vf(<vscale x 8 x float> %a, float %b) { 236; CHECK-LABEL: vfmax_nxv8f32_vf: 237; CHECK: # %bb.0: 238; CHECK-NEXT: vsetvli a0, zero, e32, m4, ta, mu 239; CHECK-NEXT: vfmax.vf v8, v8, fa0 240; CHECK-NEXT: ret 241 %head = insertelement <vscale x 8 x float> undef, float %b, i32 0 242 %splat = shufflevector <vscale x 8 x float> %head, <vscale x 8 x float> undef, <vscale x 8 x i32> zeroinitializer 243 %v = call <vscale x 8 x float> @llvm.maxnum.nxv8f32(<vscale x 8 x float> %a, <vscale x 8 x float> %splat) 244 ret <vscale x 8 x float> %v 245} 246 247declare <vscale x 16 x float> @llvm.maxnum.nxv16f32(<vscale x 16 x float>, <vscale x 16 x float>) 248 249define <vscale x 16 x float> @vfmax_nxv16f32_vv(<vscale x 16 x float> %a, <vscale x 16 x float> %b) { 250; CHECK-LABEL: vfmax_nxv16f32_vv: 251; CHECK: # %bb.0: 252; CHECK-NEXT: vsetvli a0, zero, e32, m8, ta, mu 253; CHECK-NEXT: vfmax.vv v8, v8, v16 254; CHECK-NEXT: ret 255 %v = call <vscale x 16 x float> @llvm.maxnum.nxv16f32(<vscale x 16 x float> %a, <vscale x 16 x float> %b) 256 ret <vscale x 16 x float> %v 257} 258 259define <vscale x 16 x float> @vfmax_nxv16f32_vf(<vscale x 16 x float> %a, float %b) { 260; CHECK-LABEL: vfmax_nxv16f32_vf: 261; CHECK: # %bb.0: 262; CHECK-NEXT: vsetvli a0, zero, e32, m8, ta, mu 263; CHECK-NEXT: vfmax.vf v8, v8, fa0 264; CHECK-NEXT: ret 265 %head = insertelement <vscale x 16 x float> undef, float %b, i32 0 266 %splat = shufflevector <vscale x 16 x float> %head, <vscale x 16 x float> undef, <vscale x 16 x i32> zeroinitializer 267 %v = call <vscale x 16 x float> @llvm.maxnum.nxv16f32(<vscale x 16 x float> %a, <vscale x 16 x float> %splat) 268 ret <vscale x 16 x float> %v 269} 270 271declare <vscale x 1 x double> @llvm.maxnum.nxv1f64(<vscale x 1 x double>, <vscale x 1 x double>) 272 273define <vscale x 1 x double> @vfmax_nxv1f64_vv(<vscale x 1 x double> %a, <vscale x 1 x double> %b) { 274; CHECK-LABEL: vfmax_nxv1f64_vv: 275; CHECK: # %bb.0: 276; CHECK-NEXT: vsetvli a0, zero, e64, m1, ta, mu 277; CHECK-NEXT: vfmax.vv v8, v8, v9 278; CHECK-NEXT: ret 279 %v = call <vscale x 1 x double> @llvm.maxnum.nxv1f64(<vscale x 1 x double> %a, <vscale x 1 x double> %b) 280 ret <vscale x 1 x double> %v 281} 282 283define <vscale x 1 x double> @vfmax_nxv1f64_vf(<vscale x 1 x double> %a, double %b) { 284; CHECK-LABEL: vfmax_nxv1f64_vf: 285; CHECK: # %bb.0: 286; CHECK-NEXT: vsetvli a0, zero, e64, m1, ta, mu 287; CHECK-NEXT: vfmax.vf v8, v8, fa0 288; CHECK-NEXT: ret 289 %head = insertelement <vscale x 1 x double> undef, double %b, i32 0 290 %splat = shufflevector <vscale x 1 x double> %head, <vscale x 1 x double> undef, <vscale x 1 x i32> zeroinitializer 291 %v = call <vscale x 1 x double> @llvm.maxnum.nxv1f64(<vscale x 1 x double> %a, <vscale x 1 x double> %splat) 292 ret <vscale x 1 x double> %v 293} 294 295declare <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>) 296 297define <vscale x 2 x double> @vfmax_nxv2f64_vv(<vscale x 2 x double> %a, <vscale x 2 x double> %b) { 298; CHECK-LABEL: vfmax_nxv2f64_vv: 299; CHECK: # %bb.0: 300; CHECK-NEXT: vsetvli a0, zero, e64, m2, ta, mu 301; CHECK-NEXT: vfmax.vv v8, v8, v10 302; CHECK-NEXT: ret 303 %v = call <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b) 304 ret <vscale x 2 x double> %v 305} 306 307define <vscale x 2 x double> @vfmax_nxv2f64_vf(<vscale x 2 x double> %a, double %b) { 308; CHECK-LABEL: vfmax_nxv2f64_vf: 309; CHECK: # %bb.0: 310; CHECK-NEXT: vsetvli a0, zero, e64, m2, ta, mu 311; CHECK-NEXT: vfmax.vf v8, v8, fa0 312; CHECK-NEXT: ret 313 %head = insertelement <vscale x 2 x double> undef, double %b, i32 0 314 %splat = shufflevector <vscale x 2 x double> %head, <vscale x 2 x double> undef, <vscale x 2 x i32> zeroinitializer 315 %v = call <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %splat) 316 ret <vscale x 2 x double> %v 317} 318 319declare <vscale x 4 x double> @llvm.maxnum.nxv4f64(<vscale x 4 x double>, <vscale x 4 x double>) 320 321define <vscale x 4 x double> @vfmax_nxv4f64_vv(<vscale x 4 x double> %a, <vscale x 4 x double> %b) { 322; CHECK-LABEL: vfmax_nxv4f64_vv: 323; CHECK: # %bb.0: 324; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, mu 325; CHECK-NEXT: vfmax.vv v8, v8, v12 326; CHECK-NEXT: ret 327 %v = call <vscale x 4 x double> @llvm.maxnum.nxv4f64(<vscale x 4 x double> %a, <vscale x 4 x double> %b) 328 ret <vscale x 4 x double> %v 329} 330 331define <vscale x 4 x double> @vfmax_nxv4f64_vf(<vscale x 4 x double> %a, double %b) { 332; CHECK-LABEL: vfmax_nxv4f64_vf: 333; CHECK: # %bb.0: 334; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, mu 335; CHECK-NEXT: vfmax.vf v8, v8, fa0 336; CHECK-NEXT: ret 337 %head = insertelement <vscale x 4 x double> undef, double %b, i32 0 338 %splat = shufflevector <vscale x 4 x double> %head, <vscale x 4 x double> undef, <vscale x 4 x i32> zeroinitializer 339 %v = call <vscale x 4 x double> @llvm.maxnum.nxv4f64(<vscale x 4 x double> %a, <vscale x 4 x double> %splat) 340 ret <vscale x 4 x double> %v 341} 342 343declare <vscale x 8 x double> @llvm.maxnum.nxv8f64(<vscale x 8 x double>, <vscale x 8 x double>) 344 345define <vscale x 8 x double> @vfmax_nxv8f64_vv(<vscale x 8 x double> %a, <vscale x 8 x double> %b) { 346; CHECK-LABEL: vfmax_nxv8f64_vv: 347; CHECK: # %bb.0: 348; CHECK-NEXT: vsetvli a0, zero, e64, m8, ta, mu 349; CHECK-NEXT: vfmax.vv v8, v8, v16 350; CHECK-NEXT: ret 351 %v = call <vscale x 8 x double> @llvm.maxnum.nxv8f64(<vscale x 8 x double> %a, <vscale x 8 x double> %b) 352 ret <vscale x 8 x double> %v 353} 354 355define <vscale x 8 x double> @vfmax_nxv8f64_vf(<vscale x 8 x double> %a, double %b) { 356; CHECK-LABEL: vfmax_nxv8f64_vf: 357; CHECK: # %bb.0: 358; CHECK-NEXT: vsetvli a0, zero, e64, m8, ta, mu 359; CHECK-NEXT: vfmax.vf v8, v8, fa0 360; CHECK-NEXT: ret 361 %head = insertelement <vscale x 8 x double> undef, double %b, i32 0 362 %splat = shufflevector <vscale x 8 x double> %head, <vscale x 8 x double> undef, <vscale x 8 x i32> zeroinitializer 363 %v = call <vscale x 8 x double> @llvm.maxnum.nxv8f64(<vscale x 8 x double> %a, <vscale x 8 x double> %splat) 364 ret <vscale x 8 x double> %v 365} 366