brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.8 KiB · 42be051 Raw
366 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 %s4; RUN: llc -mtriple=riscv64 -mattr=+d,+zvfh,+v -target-abi=lp64d \5; RUN:     -verify-machineinstrs < %s | FileCheck %s6 7define <vscale x 1 x half> @vfrdiv_vf_nxv1f16(<vscale x 1 x half> %va, half %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {8; CHECK-LABEL: vfrdiv_vf_nxv1f16:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma11; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t12; CHECK-NEXT:    ret13  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 014  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer15  %v = call <vscale x 1 x half> @llvm.vp.fdiv.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, <vscale x 1 x i1> %m, i32 %evl)16  ret <vscale x 1 x half> %v17}18 19define <vscale x 1 x half> @vfrdiv_vf_nxv1f16_unmasked(<vscale x 1 x half> %va, half %b, i32 zeroext %evl) {20; CHECK-LABEL: vfrdiv_vf_nxv1f16_unmasked:21; CHECK:       # %bb.0:22; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma23; CHECK-NEXT:    vfrdiv.vf v8, v8, fa024; CHECK-NEXT:    ret25  %elt.head = insertelement <vscale x 1 x half> poison, half %b, i32 026  %vb = shufflevector <vscale x 1 x half> %elt.head, <vscale x 1 x half> poison, <vscale x 1 x i32> zeroinitializer27  %v = call <vscale x 1 x half> @llvm.vp.fdiv.nxv1f16(<vscale x 1 x half> %vb, <vscale x 1 x half> %va, <vscale x 1 x i1> splat (i1 true), i32 %evl)28  ret <vscale x 1 x half> %v29}30 31define <vscale x 2 x half> @vfrdiv_vf_nxv2f16(<vscale x 2 x half> %va, half %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {32; CHECK-LABEL: vfrdiv_vf_nxv2f16:33; CHECK:       # %bb.0:34; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma35; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t36; CHECK-NEXT:    ret37  %elt.head = insertelement <vscale x 2 x half> poison, half %b, i32 038  %vb = shufflevector <vscale x 2 x half> %elt.head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer39  %v = call <vscale x 2 x half> @llvm.vp.fdiv.nxv2f16(<vscale x 2 x half> %vb, <vscale x 2 x half> %va, <vscale x 2 x i1> %m, i32 %evl)40  ret <vscale x 2 x half> %v41}42 43define <vscale x 2 x half> @vfrdiv_vf_nxv2f16_unmasked(<vscale x 2 x half> %va, half %b, i32 zeroext %evl) {44; CHECK-LABEL: vfrdiv_vf_nxv2f16_unmasked:45; CHECK:       # %bb.0:46; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma47; CHECK-NEXT:    vfrdiv.vf v8, v8, fa048; CHECK-NEXT:    ret49  %elt.head = insertelement <vscale x 2 x half> poison, half %b, i32 050  %vb = shufflevector <vscale x 2 x half> %elt.head, <vscale x 2 x half> poison, <vscale x 2 x i32> zeroinitializer51  %v = call <vscale x 2 x half> @llvm.vp.fdiv.nxv2f16(<vscale x 2 x half> %vb, <vscale x 2 x half> %va, <vscale x 2 x i1> splat (i1 true), i32 %evl)52  ret <vscale x 2 x half> %v53}54 55define <vscale x 4 x half> @vfrdiv_vf_nxv4f16(<vscale x 4 x half> %va, half %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {56; CHECK-LABEL: vfrdiv_vf_nxv4f16:57; CHECK:       # %bb.0:58; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma59; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t60; CHECK-NEXT:    ret61  %elt.head = insertelement <vscale x 4 x half> poison, half %b, i32 062  %vb = shufflevector <vscale x 4 x half> %elt.head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer63  %v = call <vscale x 4 x half> @llvm.vp.fdiv.nxv4f16(<vscale x 4 x half> %vb, <vscale x 4 x half> %va, <vscale x 4 x i1> %m, i32 %evl)64  ret <vscale x 4 x half> %v65}66 67define <vscale x 4 x half> @vfrdiv_vf_nxv4f16_unmasked(<vscale x 4 x half> %va, half %b, i32 zeroext %evl) {68; CHECK-LABEL: vfrdiv_vf_nxv4f16_unmasked:69; CHECK:       # %bb.0:70; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma71; CHECK-NEXT:    vfrdiv.vf v8, v8, fa072; CHECK-NEXT:    ret73  %elt.head = insertelement <vscale x 4 x half> poison, half %b, i32 074  %vb = shufflevector <vscale x 4 x half> %elt.head, <vscale x 4 x half> poison, <vscale x 4 x i32> zeroinitializer75  %v = call <vscale x 4 x half> @llvm.vp.fdiv.nxv4f16(<vscale x 4 x half> %vb, <vscale x 4 x half> %va, <vscale x 4 x i1> splat (i1 true), i32 %evl)76  ret <vscale x 4 x half> %v77}78 79define <vscale x 8 x half> @vfrdiv_vf_nxv8f16(<vscale x 8 x half> %va, half %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {80; CHECK-LABEL: vfrdiv_vf_nxv8f16:81; CHECK:       # %bb.0:82; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma83; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t84; CHECK-NEXT:    ret85  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 086  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer87  %v = call <vscale x 8 x half> @llvm.vp.fdiv.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, <vscale x 8 x i1> %m, i32 %evl)88  ret <vscale x 8 x half> %v89}90 91define <vscale x 8 x half> @vfrdiv_vf_nxv8f16_unmasked(<vscale x 8 x half> %va, half %b, i32 zeroext %evl) {92; CHECK-LABEL: vfrdiv_vf_nxv8f16_unmasked:93; CHECK:       # %bb.0:94; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma95; CHECK-NEXT:    vfrdiv.vf v8, v8, fa096; CHECK-NEXT:    ret97  %elt.head = insertelement <vscale x 8 x half> poison, half %b, i32 098  %vb = shufflevector <vscale x 8 x half> %elt.head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer99  %v = call <vscale x 8 x half> @llvm.vp.fdiv.nxv8f16(<vscale x 8 x half> %vb, <vscale x 8 x half> %va, <vscale x 8 x i1> splat (i1 true), i32 %evl)100  ret <vscale x 8 x half> %v101}102 103define <vscale x 16 x half> @vfrdiv_vf_nxv16f16(<vscale x 16 x half> %va, half %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {104; CHECK-LABEL: vfrdiv_vf_nxv16f16:105; CHECK:       # %bb.0:106; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma107; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t108; CHECK-NEXT:    ret109  %elt.head = insertelement <vscale x 16 x half> poison, half %b, i32 0110  %vb = shufflevector <vscale x 16 x half> %elt.head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer111  %v = call <vscale x 16 x half> @llvm.vp.fdiv.nxv16f16(<vscale x 16 x half> %vb, <vscale x 16 x half> %va, <vscale x 16 x i1> %m, i32 %evl)112  ret <vscale x 16 x half> %v113}114 115define <vscale x 16 x half> @vfrdiv_vf_nxv16f16_unmasked(<vscale x 16 x half> %va, half %b, i32 zeroext %evl) {116; CHECK-LABEL: vfrdiv_vf_nxv16f16_unmasked:117; CHECK:       # %bb.0:118; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma119; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0120; CHECK-NEXT:    ret121  %elt.head = insertelement <vscale x 16 x half> poison, half %b, i32 0122  %vb = shufflevector <vscale x 16 x half> %elt.head, <vscale x 16 x half> poison, <vscale x 16 x i32> zeroinitializer123  %v = call <vscale x 16 x half> @llvm.vp.fdiv.nxv16f16(<vscale x 16 x half> %vb, <vscale x 16 x half> %va, <vscale x 16 x i1> splat (i1 true), i32 %evl)124  ret <vscale x 16 x half> %v125}126 127define <vscale x 32 x half> @vfrdiv_vf_nxv32f16(<vscale x 32 x half> %va, half %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {128; CHECK-LABEL: vfrdiv_vf_nxv32f16:129; CHECK:       # %bb.0:130; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma131; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t132; CHECK-NEXT:    ret133  %elt.head = insertelement <vscale x 32 x half> poison, half %b, i32 0134  %vb = shufflevector <vscale x 32 x half> %elt.head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer135  %v = call <vscale x 32 x half> @llvm.vp.fdiv.nxv32f16(<vscale x 32 x half> %vb, <vscale x 32 x half> %va, <vscale x 32 x i1> %m, i32 %evl)136  ret <vscale x 32 x half> %v137}138 139define <vscale x 32 x half> @vfrdiv_vf_nxv32f16_unmasked(<vscale x 32 x half> %va, half %b, i32 zeroext %evl) {140; CHECK-LABEL: vfrdiv_vf_nxv32f16_unmasked:141; CHECK:       # %bb.0:142; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma143; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0144; CHECK-NEXT:    ret145  %elt.head = insertelement <vscale x 32 x half> poison, half %b, i32 0146  %vb = shufflevector <vscale x 32 x half> %elt.head, <vscale x 32 x half> poison, <vscale x 32 x i32> zeroinitializer147  %v = call <vscale x 32 x half> @llvm.vp.fdiv.nxv32f16(<vscale x 32 x half> %vb, <vscale x 32 x half> %va, <vscale x 32 x i1> splat (i1 true), i32 %evl)148  ret <vscale x 32 x half> %v149}150 151define <vscale x 1 x float> @vfrdiv_vf_nxv1f32(<vscale x 1 x float> %va, float %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {152; CHECK-LABEL: vfrdiv_vf_nxv1f32:153; CHECK:       # %bb.0:154; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma155; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t156; CHECK-NEXT:    ret157  %elt.head = insertelement <vscale x 1 x float> poison, float %b, i32 0158  %vb = shufflevector <vscale x 1 x float> %elt.head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer159  %v = call <vscale x 1 x float> @llvm.vp.fdiv.nxv1f32(<vscale x 1 x float> %vb, <vscale x 1 x float> %va, <vscale x 1 x i1> %m, i32 %evl)160  ret <vscale x 1 x float> %v161}162 163define <vscale x 1 x float> @vfrdiv_vf_nxv1f32_unmasked(<vscale x 1 x float> %va, float %b, i32 zeroext %evl) {164; CHECK-LABEL: vfrdiv_vf_nxv1f32_unmasked:165; CHECK:       # %bb.0:166; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma167; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0168; CHECK-NEXT:    ret169  %elt.head = insertelement <vscale x 1 x float> poison, float %b, i32 0170  %vb = shufflevector <vscale x 1 x float> %elt.head, <vscale x 1 x float> poison, <vscale x 1 x i32> zeroinitializer171  %v = call <vscale x 1 x float> @llvm.vp.fdiv.nxv1f32(<vscale x 1 x float> %vb, <vscale x 1 x float> %va, <vscale x 1 x i1> splat (i1 true), i32 %evl)172  ret <vscale x 1 x float> %v173}174 175define <vscale x 2 x float> @vfrdiv_vf_nxv2f32(<vscale x 2 x float> %va, float %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {176; CHECK-LABEL: vfrdiv_vf_nxv2f32:177; CHECK:       # %bb.0:178; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma179; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t180; CHECK-NEXT:    ret181  %elt.head = insertelement <vscale x 2 x float> poison, float %b, i32 0182  %vb = shufflevector <vscale x 2 x float> %elt.head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer183  %v = call <vscale x 2 x float> @llvm.vp.fdiv.nxv2f32(<vscale x 2 x float> %vb, <vscale x 2 x float> %va, <vscale x 2 x i1> %m, i32 %evl)184  ret <vscale x 2 x float> %v185}186 187define <vscale x 2 x float> @vfrdiv_vf_nxv2f32_unmasked(<vscale x 2 x float> %va, float %b, i32 zeroext %evl) {188; CHECK-LABEL: vfrdiv_vf_nxv2f32_unmasked:189; CHECK:       # %bb.0:190; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma191; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0192; CHECK-NEXT:    ret193  %elt.head = insertelement <vscale x 2 x float> poison, float %b, i32 0194  %vb = shufflevector <vscale x 2 x float> %elt.head, <vscale x 2 x float> poison, <vscale x 2 x i32> zeroinitializer195  %v = call <vscale x 2 x float> @llvm.vp.fdiv.nxv2f32(<vscale x 2 x float> %vb, <vscale x 2 x float> %va, <vscale x 2 x i1> splat (i1 true), i32 %evl)196  ret <vscale x 2 x float> %v197}198 199define <vscale x 4 x float> @vfrdiv_vf_nxv4f32(<vscale x 4 x float> %va, float %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {200; CHECK-LABEL: vfrdiv_vf_nxv4f32:201; CHECK:       # %bb.0:202; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma203; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t204; CHECK-NEXT:    ret205  %elt.head = insertelement <vscale x 4 x float> poison, float %b, i32 0206  %vb = shufflevector <vscale x 4 x float> %elt.head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer207  %v = call <vscale x 4 x float> @llvm.vp.fdiv.nxv4f32(<vscale x 4 x float> %vb, <vscale x 4 x float> %va, <vscale x 4 x i1> %m, i32 %evl)208  ret <vscale x 4 x float> %v209}210 211define <vscale x 4 x float> @vfrdiv_vf_nxv4f32_unmasked(<vscale x 4 x float> %va, float %b, i32 zeroext %evl) {212; CHECK-LABEL: vfrdiv_vf_nxv4f32_unmasked:213; CHECK:       # %bb.0:214; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma215; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0216; CHECK-NEXT:    ret217  %elt.head = insertelement <vscale x 4 x float> poison, float %b, i32 0218  %vb = shufflevector <vscale x 4 x float> %elt.head, <vscale x 4 x float> poison, <vscale x 4 x i32> zeroinitializer219  %v = call <vscale x 4 x float> @llvm.vp.fdiv.nxv4f32(<vscale x 4 x float> %vb, <vscale x 4 x float> %va, <vscale x 4 x i1> splat (i1 true), i32 %evl)220  ret <vscale x 4 x float> %v221}222 223define <vscale x 8 x float> @vfrdiv_vf_nxv8f32(<vscale x 8 x float> %va, float %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {224; CHECK-LABEL: vfrdiv_vf_nxv8f32:225; CHECK:       # %bb.0:226; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma227; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t228; CHECK-NEXT:    ret229  %elt.head = insertelement <vscale x 8 x float> poison, float %b, i32 0230  %vb = shufflevector <vscale x 8 x float> %elt.head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer231  %v = call <vscale x 8 x float> @llvm.vp.fdiv.nxv8f32(<vscale x 8 x float> %vb, <vscale x 8 x float> %va, <vscale x 8 x i1> %m, i32 %evl)232  ret <vscale x 8 x float> %v233}234 235define <vscale x 8 x float> @vfrdiv_vf_nxv8f32_unmasked(<vscale x 8 x float> %va, float %b, i32 zeroext %evl) {236; CHECK-LABEL: vfrdiv_vf_nxv8f32_unmasked:237; CHECK:       # %bb.0:238; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma239; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0240; CHECK-NEXT:    ret241  %elt.head = insertelement <vscale x 8 x float> poison, float %b, i32 0242  %vb = shufflevector <vscale x 8 x float> %elt.head, <vscale x 8 x float> poison, <vscale x 8 x i32> zeroinitializer243  %v = call <vscale x 8 x float> @llvm.vp.fdiv.nxv8f32(<vscale x 8 x float> %vb, <vscale x 8 x float> %va, <vscale x 8 x i1> splat (i1 true), i32 %evl)244  ret <vscale x 8 x float> %v245}246 247define <vscale x 16 x float> @vfrdiv_vf_nxv16f32(<vscale x 16 x float> %va, float %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {248; CHECK-LABEL: vfrdiv_vf_nxv16f32:249; CHECK:       # %bb.0:250; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma251; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t252; CHECK-NEXT:    ret253  %elt.head = insertelement <vscale x 16 x float> poison, float %b, i32 0254  %vb = shufflevector <vscale x 16 x float> %elt.head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer255  %v = call <vscale x 16 x float> @llvm.vp.fdiv.nxv16f32(<vscale x 16 x float> %vb, <vscale x 16 x float> %va, <vscale x 16 x i1> %m, i32 %evl)256  ret <vscale x 16 x float> %v257}258 259define <vscale x 16 x float> @vfrdiv_vf_nxv16f32_unmasked(<vscale x 16 x float> %va, float %b, i32 zeroext %evl) {260; CHECK-LABEL: vfrdiv_vf_nxv16f32_unmasked:261; CHECK:       # %bb.0:262; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma263; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0264; CHECK-NEXT:    ret265  %elt.head = insertelement <vscale x 16 x float> poison, float %b, i32 0266  %vb = shufflevector <vscale x 16 x float> %elt.head, <vscale x 16 x float> poison, <vscale x 16 x i32> zeroinitializer267  %v = call <vscale x 16 x float> @llvm.vp.fdiv.nxv16f32(<vscale x 16 x float> %vb, <vscale x 16 x float> %va, <vscale x 16 x i1> splat (i1 true), i32 %evl)268  ret <vscale x 16 x float> %v269}270 271define <vscale x 1 x double> @vfrdiv_vf_nxv1f64(<vscale x 1 x double> %va, double %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {272; CHECK-LABEL: vfrdiv_vf_nxv1f64:273; CHECK:       # %bb.0:274; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma275; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t276; CHECK-NEXT:    ret277  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 0278  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer279  %v = call <vscale x 1 x double> @llvm.vp.fdiv.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, <vscale x 1 x i1> %m, i32 %evl)280  ret <vscale x 1 x double> %v281}282 283define <vscale x 1 x double> @vfrdiv_vf_nxv1f64_unmasked(<vscale x 1 x double> %va, double %b, i32 zeroext %evl) {284; CHECK-LABEL: vfrdiv_vf_nxv1f64_unmasked:285; CHECK:       # %bb.0:286; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma287; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0288; CHECK-NEXT:    ret289  %elt.head = insertelement <vscale x 1 x double> poison, double %b, i32 0290  %vb = shufflevector <vscale x 1 x double> %elt.head, <vscale x 1 x double> poison, <vscale x 1 x i32> zeroinitializer291  %v = call <vscale x 1 x double> @llvm.vp.fdiv.nxv1f64(<vscale x 1 x double> %vb, <vscale x 1 x double> %va, <vscale x 1 x i1> splat (i1 true), i32 %evl)292  ret <vscale x 1 x double> %v293}294 295define <vscale x 2 x double> @vfrdiv_vf_nxv2f64(<vscale x 2 x double> %va, double %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {296; CHECK-LABEL: vfrdiv_vf_nxv2f64:297; CHECK:       # %bb.0:298; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma299; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t300; CHECK-NEXT:    ret301  %elt.head = insertelement <vscale x 2 x double> poison, double %b, i32 0302  %vb = shufflevector <vscale x 2 x double> %elt.head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer303  %v = call <vscale x 2 x double> @llvm.vp.fdiv.nxv2f64(<vscale x 2 x double> %vb, <vscale x 2 x double> %va, <vscale x 2 x i1> %m, i32 %evl)304  ret <vscale x 2 x double> %v305}306 307define <vscale x 2 x double> @vfrdiv_vf_nxv2f64_unmasked(<vscale x 2 x double> %va, double %b, i32 zeroext %evl) {308; CHECK-LABEL: vfrdiv_vf_nxv2f64_unmasked:309; CHECK:       # %bb.0:310; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma311; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0312; CHECK-NEXT:    ret313  %elt.head = insertelement <vscale x 2 x double> poison, double %b, i32 0314  %vb = shufflevector <vscale x 2 x double> %elt.head, <vscale x 2 x double> poison, <vscale x 2 x i32> zeroinitializer315  %v = call <vscale x 2 x double> @llvm.vp.fdiv.nxv2f64(<vscale x 2 x double> %vb, <vscale x 2 x double> %va, <vscale x 2 x i1> splat (i1 true), i32 %evl)316  ret <vscale x 2 x double> %v317}318 319define <vscale x 4 x double> @vfrdiv_vf_nxv4f64(<vscale x 4 x double> %va, double %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {320; CHECK-LABEL: vfrdiv_vf_nxv4f64:321; CHECK:       # %bb.0:322; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma323; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t324; CHECK-NEXT:    ret325  %elt.head = insertelement <vscale x 4 x double> poison, double %b, i32 0326  %vb = shufflevector <vscale x 4 x double> %elt.head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer327  %v = call <vscale x 4 x double> @llvm.vp.fdiv.nxv4f64(<vscale x 4 x double> %vb, <vscale x 4 x double> %va, <vscale x 4 x i1> %m, i32 %evl)328  ret <vscale x 4 x double> %v329}330 331define <vscale x 4 x double> @vfrdiv_vf_nxv4f64_unmasked(<vscale x 4 x double> %va, double %b, i32 zeroext %evl) {332; CHECK-LABEL: vfrdiv_vf_nxv4f64_unmasked:333; CHECK:       # %bb.0:334; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma335; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0336; CHECK-NEXT:    ret337  %elt.head = insertelement <vscale x 4 x double> poison, double %b, i32 0338  %vb = shufflevector <vscale x 4 x double> %elt.head, <vscale x 4 x double> poison, <vscale x 4 x i32> zeroinitializer339  %v = call <vscale x 4 x double> @llvm.vp.fdiv.nxv4f64(<vscale x 4 x double> %vb, <vscale x 4 x double> %va, <vscale x 4 x i1> splat (i1 true), i32 %evl)340  ret <vscale x 4 x double> %v341}342 343define <vscale x 8 x double> @vfrdiv_vf_nxv8f64(<vscale x 8 x double> %va, double %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {344; CHECK-LABEL: vfrdiv_vf_nxv8f64:345; CHECK:       # %bb.0:346; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma347; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0, v0.t348; CHECK-NEXT:    ret349  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 0350  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer351  %v = call <vscale x 8 x double> @llvm.vp.fdiv.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, <vscale x 8 x i1> %m, i32 %evl)352  ret <vscale x 8 x double> %v353}354 355define <vscale x 8 x double> @vfrdiv_vf_nxv8f64_unmasked(<vscale x 8 x double> %va, double %b, i32 zeroext %evl) {356; CHECK-LABEL: vfrdiv_vf_nxv8f64_unmasked:357; CHECK:       # %bb.0:358; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma359; CHECK-NEXT:    vfrdiv.vf v8, v8, fa0360; CHECK-NEXT:    ret361  %elt.head = insertelement <vscale x 8 x double> poison, double %b, i32 0362  %vb = shufflevector <vscale x 8 x double> %elt.head, <vscale x 8 x double> poison, <vscale x 8 x i32> zeroinitializer363  %v = call <vscale x 8 x double> @llvm.vp.fdiv.nxv8f64(<vscale x 8 x double> %vb, <vscale x 8 x double> %va, <vscale x 8 x i1> splat (i1 true), i32 %evl)364  ret <vscale x 8 x double> %v365}366