1*93caee17SMark Goncharov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 4 2*93caee17SMark Goncharov; RUN: opt -mtriple=riscv64-unknown-linux-gnu -mattr=+v -vector-library=sleefgnuabi -replace-with-veclib -S < %s | FileCheck %s 3*93caee17SMark Goncharov 4*93caee17SMark Goncharov;. 5*93caee17SMark Goncharov; CHECK: @llvm.compiler.used = appending global [21 x ptr] [ptr @Sleef_cosdx_u10rvvm2, ptr @Sleef_cosfx_u10rvvm2, ptr @Sleef_expfx_u10rvvm2, ptr @Sleef_exp10dx_u10rvvm2, ptr @Sleef_exp10fx_u10rvvm2, ptr @Sleef_exp2dx_u10rvvm2, ptr @Sleef_exp2fx_u10rvvm2, ptr @Sleef_fmadx_rvvm2, ptr @Sleef_fmafx_rvvm2, ptr @Sleef_logdx_u10rvvm2, ptr @Sleef_logfx_u10rvvm2, ptr @Sleef_log10dx_u10rvvm2, ptr @Sleef_log10fx_u10rvvm2, ptr @Sleef_log2dx_u10rvvm2, ptr @Sleef_log2fx_u10rvvm2, ptr @Sleef_powdx_u10rvvm2, ptr @Sleef_powfx_u10rvvm2, ptr @Sleef_sindx_u10rvvm2, ptr @Sleef_sinfx_u10rvvm2, ptr @Sleef_sqrtdx_u05rvvm2, ptr @Sleef_sqrtfx_u05rvvm2], section "llvm.metadata" 6*93caee17SMark Goncharov;. 7*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_ceil_vscale_f64(<vscale x 2 x double> %in) { 8*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_ceil_vscale_f64( 9*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0:[0-9]+]] { 10*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double> [[IN]]) 11*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 12*93caee17SMark Goncharov; 13*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double> %in) 14*93caee17SMark Goncharov ret <vscale x 2 x double> %1 15*93caee17SMark Goncharov} 16*93caee17SMark Goncharov 17*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_ceil_vscale_f32(<vscale x 4 x float> %in) { 18*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_ceil_vscale_f32( 19*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 20*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float> [[IN]]) 21*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 22*93caee17SMark Goncharov; 23*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float> %in) 24*93caee17SMark Goncharov ret <vscale x 4 x float> %1 25*93caee17SMark Goncharov} 26*93caee17SMark Goncharov 27*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_copysign_vscale_f64(<vscale x 2 x double> %mag, <vscale x 2 x double> %sgn) { 28*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_copysign_vscale_f64( 29*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[MAG:%.*]], <vscale x 2 x double> [[SGN:%.*]]) #[[ATTR0]] { 30*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double> [[MAG]], <vscale x 2 x double> [[SGN]]) 31*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 32*93caee17SMark Goncharov; 33*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double> %mag, <vscale x 2 x double> %sgn) 34*93caee17SMark Goncharov ret <vscale x 2 x double> %1 35*93caee17SMark Goncharov} 36*93caee17SMark Goncharov 37*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_copysign_vscale_f32(<vscale x 4 x float> %mag, <vscale x 4 x float> %sgn) { 38*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_copysign_vscale_f32( 39*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[MAG:%.*]], <vscale x 4 x float> [[SGN:%.*]]) #[[ATTR0]] { 40*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float> [[MAG]], <vscale x 4 x float> [[SGN]]) 41*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 42*93caee17SMark Goncharov; 43*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float> %mag, <vscale x 4 x float> %sgn) 44*93caee17SMark Goncharov ret <vscale x 4 x float> %1 45*93caee17SMark Goncharov} 46*93caee17SMark Goncharov 47*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_cos_vscale_f64(<vscale x 2 x double> %in) { 48*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_cos_vscale_f64( 49*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 50*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_cosdx_u10rvvm2(<vscale x 2 x double> [[IN]]) 51*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 52*93caee17SMark Goncharov; 53*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.cos.nxv2f64(<vscale x 2 x double> %in) 54*93caee17SMark Goncharov ret <vscale x 2 x double> %1 55*93caee17SMark Goncharov} 56*93caee17SMark Goncharov 57*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_cos_vscale_f32(<vscale x 4 x float> %in) { 58*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_cos_vscale_f32( 59*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 60*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_cosfx_u10rvvm2(<vscale x 4 x float> [[IN]]) 61*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 62*93caee17SMark Goncharov; 63*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.cos.nxv4f32(<vscale x 4 x float> %in) 64*93caee17SMark Goncharov ret <vscale x 4 x float> %1 65*93caee17SMark Goncharov} 66*93caee17SMark Goncharov 67*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp_vscale_f64(<vscale x 2 x double> %in) { 68*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp_vscale_f64( 69*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 70*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double> [[IN]]) 71*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 72*93caee17SMark Goncharov; 73*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double> %in) 74*93caee17SMark Goncharov ret <vscale x 2 x double> %1 75*93caee17SMark Goncharov} 76*93caee17SMark Goncharov 77*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp_vscale_f32(<vscale x 4 x float> %in) { 78*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp_vscale_f32( 79*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 80*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_expfx_u10rvvm2(<vscale x 4 x float> [[IN]]) 81*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 82*93caee17SMark Goncharov; 83*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.exp.nxv4f32(<vscale x 4 x float> %in) 84*93caee17SMark Goncharov ret <vscale x 4 x float> %1 85*93caee17SMark Goncharov} 86*93caee17SMark Goncharov 87*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp10_vscale_f64(<vscale x 2 x double> %in) { 88*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp10_vscale_f64( 89*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 90*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_exp10dx_u10rvvm2(<vscale x 2 x double> [[IN]]) 91*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 92*93caee17SMark Goncharov; 93*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.exp10.nxv2f64(<vscale x 2 x double> %in) 94*93caee17SMark Goncharov ret <vscale x 2 x double> %1 95*93caee17SMark Goncharov} 96*93caee17SMark Goncharov 97*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp10_vscale_f32(<vscale x 4 x float> %in) { 98*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp10_vscale_f32( 99*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 100*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_exp10fx_u10rvvm2(<vscale x 4 x float> [[IN]]) 101*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 102*93caee17SMark Goncharov; 103*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.exp10.nxv4f32(<vscale x 4 x float> %in) 104*93caee17SMark Goncharov ret <vscale x 4 x float> %1 105*93caee17SMark Goncharov} 106*93caee17SMark Goncharov 107*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_exp2_vscale_f64(<vscale x 2 x double> %in) { 108*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_exp2_vscale_f64( 109*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 110*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_exp2dx_u10rvvm2(<vscale x 2 x double> [[IN]]) 111*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 112*93caee17SMark Goncharov; 113*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.exp2.nxv2f64(<vscale x 2 x double> %in) 114*93caee17SMark Goncharov ret <vscale x 2 x double> %1 115*93caee17SMark Goncharov} 116*93caee17SMark Goncharov 117*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_exp2_vscale_f32(<vscale x 4 x float> %in) { 118*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_exp2_vscale_f32( 119*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 120*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_exp2fx_u10rvvm2(<vscale x 4 x float> [[IN]]) 121*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 122*93caee17SMark Goncharov; 123*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.exp2.nxv4f32(<vscale x 4 x float> %in) 124*93caee17SMark Goncharov ret <vscale x 4 x float> %1 125*93caee17SMark Goncharov} 126*93caee17SMark Goncharov 127*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_fabs_vscale_f64(<vscale x 2 x double> %in) { 128*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_fabs_vscale_f64( 129*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 130*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double> [[IN]]) 131*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 132*93caee17SMark Goncharov; 133*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double> %in) 134*93caee17SMark Goncharov ret <vscale x 2 x double> %1 135*93caee17SMark Goncharov} 136*93caee17SMark Goncharov 137*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_fabs_vscale_f32(<vscale x 4 x float> %in) { 138*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_fabs_vscale_f32( 139*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 140*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float> [[IN]]) 141*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 142*93caee17SMark Goncharov; 143*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float> %in) 144*93caee17SMark Goncharov ret <vscale x 4 x float> %1 145*93caee17SMark Goncharov} 146*93caee17SMark Goncharov 147*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_floor_vscale_f64(<vscale x 2 x double> %in) { 148*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_floor_vscale_f64( 149*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 150*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double> [[IN]]) 151*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 152*93caee17SMark Goncharov; 153*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double> %in) 154*93caee17SMark Goncharov ret <vscale x 2 x double> %1 155*93caee17SMark Goncharov} 156*93caee17SMark Goncharov 157*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_floor_vscale_f32(<vscale x 4 x float> %in) { 158*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_floor_vscale_f32( 159*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 160*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float> [[IN]]) 161*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 162*93caee17SMark Goncharov; 163*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float> %in) 164*93caee17SMark Goncharov ret <vscale x 4 x float> %1 165*93caee17SMark Goncharov} 166*93caee17SMark Goncharov 167*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_fma_vscale_f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, <vscale x 2 x double> %c ) { 168*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_fma_vscale_f64( 169*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[A:%.*]], <vscale x 2 x double> [[B:%.*]], <vscale x 2 x double> [[C:%.*]]) #[[ATTR0]] { 170*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_fmadx_rvvm2(<vscale x 2 x double> [[A]], <vscale x 2 x double> [[B]], <vscale x 2 x double> [[C]]) 171*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 172*93caee17SMark Goncharov; 173*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.fma.nxv2f64(<vscale x 2 x double> %a, <vscale x 2 x double> %b, <vscale x 2 x double> %c) 174*93caee17SMark Goncharov ret <vscale x 2 x double> %1 175*93caee17SMark Goncharov} 176*93caee17SMark Goncharov 177*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_fma_vscale_f32(<vscale x 4 x float> %a, <vscale x 4 x float> %b, <vscale x 4 x float> %c) { 178*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_fma_vscale_f32( 179*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[A:%.*]], <vscale x 4 x float> [[B:%.*]], <vscale x 4 x float> [[C:%.*]]) #[[ATTR0]] { 180*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_fmafx_rvvm2(<vscale x 4 x float> [[A]], <vscale x 4 x float> [[B]], <vscale x 4 x float> [[C]]) 181*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 182*93caee17SMark Goncharov; 183*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.fma.nxv4f32(<vscale x 4 x float> %a, <vscale x 4 x float> %b, <vscale x 4 x float> %c) 184*93caee17SMark Goncharov ret <vscale x 4 x float> %1 185*93caee17SMark Goncharov} 186*93caee17SMark Goncharov 187*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log_vscale_f64(<vscale x 2 x double> %in) { 188*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log_vscale_f64( 189*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 190*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_logdx_u10rvvm2(<vscale x 2 x double> [[IN]]) 191*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 192*93caee17SMark Goncharov; 193*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.log.nxv2f64(<vscale x 2 x double> %in) 194*93caee17SMark Goncharov ret <vscale x 2 x double> %1 195*93caee17SMark Goncharov} 196*93caee17SMark Goncharov 197*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log_vscale_f32(<vscale x 4 x float> %in) { 198*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log_vscale_f32( 199*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 200*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_logfx_u10rvvm2(<vscale x 4 x float> [[IN]]) 201*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 202*93caee17SMark Goncharov; 203*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.log.nxv4f32(<vscale x 4 x float> %in) 204*93caee17SMark Goncharov ret <vscale x 4 x float> %1 205*93caee17SMark Goncharov} 206*93caee17SMark Goncharov 207*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log10_vscale_f64(<vscale x 2 x double> %in) { 208*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log10_vscale_f64( 209*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 210*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_log10dx_u10rvvm2(<vscale x 2 x double> [[IN]]) 211*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 212*93caee17SMark Goncharov; 213*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.log10.nxv2f64(<vscale x 2 x double> %in) 214*93caee17SMark Goncharov ret <vscale x 2 x double> %1 215*93caee17SMark Goncharov} 216*93caee17SMark Goncharov 217*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log10_vscale_f32(<vscale x 4 x float> %in) { 218*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log10_vscale_f32( 219*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 220*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_log10fx_u10rvvm2(<vscale x 4 x float> [[IN]]) 221*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 222*93caee17SMark Goncharov; 223*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.log10.nxv4f32(<vscale x 4 x float> %in) 224*93caee17SMark Goncharov ret <vscale x 4 x float> %1 225*93caee17SMark Goncharov} 226*93caee17SMark Goncharov 227*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_log2_vscale_f64(<vscale x 2 x double> %in) { 228*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_log2_vscale_f64( 229*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 230*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_log2dx_u10rvvm2(<vscale x 2 x double> [[IN]]) 231*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 232*93caee17SMark Goncharov; 233*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.log2.nxv2f64(<vscale x 2 x double> %in) 234*93caee17SMark Goncharov ret <vscale x 2 x double> %1 235*93caee17SMark Goncharov} 236*93caee17SMark Goncharov 237*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_log2_vscale_f32(<vscale x 4 x float> %in) { 238*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_log2_vscale_f32( 239*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 240*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_log2fx_u10rvvm2(<vscale x 4 x float> [[IN]]) 241*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 242*93caee17SMark Goncharov; 243*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.log2.nxv4f32(<vscale x 4 x float> %in) 244*93caee17SMark Goncharov ret <vscale x 4 x float> %1 245*93caee17SMark Goncharov} 246*93caee17SMark Goncharov 247*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_maxnum_vscale_f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) { 248*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_maxnum_vscale_f64( 249*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN0:%.*]], <vscale x 2 x double> [[IN1:%.*]]) #[[ATTR0]] { 250*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> [[IN0]], <vscale x 2 x double> [[IN1]]) 251*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 252*93caee17SMark Goncharov; 253*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) 254*93caee17SMark Goncharov ret <vscale x 2 x double> %1 255*93caee17SMark Goncharov} 256*93caee17SMark Goncharov 257*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_maxnum_vscale_f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) { 258*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_maxnum_vscale_f32( 259*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN0:%.*]], <vscale x 4 x float> [[IN1:%.*]]) #[[ATTR0]] { 260*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> [[IN0]], <vscale x 4 x float> [[IN1]]) 261*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 262*93caee17SMark Goncharov; 263*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) 264*93caee17SMark Goncharov ret <vscale x 4 x float> %1 265*93caee17SMark Goncharov} 266*93caee17SMark Goncharov 267*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_minnum_vscale_f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) { 268*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_minnum_vscale_f64( 269*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN0:%.*]], <vscale x 2 x double> [[IN1:%.*]]) #[[ATTR0]] { 270*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double> [[IN0]], <vscale x 2 x double> [[IN1]]) 271*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 272*93caee17SMark Goncharov; 273*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double> %in0, <vscale x 2 x double> %in1) 274*93caee17SMark Goncharov ret <vscale x 2 x double> %1 275*93caee17SMark Goncharov} 276*93caee17SMark Goncharov 277*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_minnum_vscale_f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) { 278*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_minnum_vscale_f32( 279*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN0:%.*]], <vscale x 4 x float> [[IN1:%.*]]) #[[ATTR0]] { 280*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float> [[IN0]], <vscale x 4 x float> [[IN1]]) 281*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 282*93caee17SMark Goncharov; 283*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float> %in0, <vscale x 4 x float> %in1) 284*93caee17SMark Goncharov ret <vscale x 4 x float> %1 285*93caee17SMark Goncharov} 286*93caee17SMark Goncharov 287*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_nearbyint_vscale_f64(<vscale x 2 x double> %in) { 288*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_nearbyint_vscale_f64( 289*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 290*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double> [[IN]]) 291*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 292*93caee17SMark Goncharov; 293*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double> %in) 294*93caee17SMark Goncharov ret <vscale x 2 x double> %1 295*93caee17SMark Goncharov} 296*93caee17SMark Goncharov 297*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_nearbyint_vscale_f32(<vscale x 4 x float> %in) { 298*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_nearbyint_vscale_f32( 299*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 300*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float> [[IN]]) 301*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 302*93caee17SMark Goncharov; 303*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float> %in) 304*93caee17SMark Goncharov ret <vscale x 4 x float> %1 305*93caee17SMark Goncharov} 306*93caee17SMark Goncharov 307*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_pow_vscale_f64(<vscale x 2 x double> %in, <vscale x 2 x double> %pow) { 308*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_pow_vscale_f64( 309*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]], <vscale x 2 x double> [[POW:%.*]]) #[[ATTR0]] { 310*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_powdx_u10rvvm2(<vscale x 2 x double> [[IN]], <vscale x 2 x double> [[POW]]) 311*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 312*93caee17SMark Goncharov; 313*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.pow.nxv2f64(<vscale x 2 x double> %in, <vscale x 2 x double> %pow) 314*93caee17SMark Goncharov ret <vscale x 2 x double> %1 315*93caee17SMark Goncharov} 316*93caee17SMark Goncharov 317*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_pow_vscale_f32(<vscale x 4 x float> %in, <vscale x 4 x float> %pow) { 318*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_pow_vscale_f32( 319*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]], <vscale x 4 x float> [[POW:%.*]]) #[[ATTR0]] { 320*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_powfx_u10rvvm2(<vscale x 4 x float> [[IN]], <vscale x 4 x float> [[POW]]) 321*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 322*93caee17SMark Goncharov; 323*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.pow.nxv4f32(<vscale x 4 x float> %in, <vscale x 4 x float> %pow) 324*93caee17SMark Goncharov ret <vscale x 4 x float> %1 325*93caee17SMark Goncharov} 326*93caee17SMark Goncharov 327*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_rint_vscale_f64(<vscale x 2 x double> %in) { 328*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_rint_vscale_f64( 329*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 330*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double> [[IN]]) 331*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 332*93caee17SMark Goncharov; 333*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double> %in) 334*93caee17SMark Goncharov ret <vscale x 2 x double> %1 335*93caee17SMark Goncharov} 336*93caee17SMark Goncharov 337*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_rint_vscale_f32(<vscale x 4 x float> %in) { 338*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_rint_vscale_f32( 339*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 340*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float> [[IN]]) 341*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 342*93caee17SMark Goncharov; 343*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float> %in) 344*93caee17SMark Goncharov ret <vscale x 4 x float> %1 345*93caee17SMark Goncharov} 346*93caee17SMark Goncharov 347*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_round_vscale_f64(<vscale x 2 x double> %in) { 348*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_round_vscale_f64( 349*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 350*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double> [[IN]]) 351*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 352*93caee17SMark Goncharov; 353*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double> %in) 354*93caee17SMark Goncharov ret <vscale x 2 x double> %1 355*93caee17SMark Goncharov} 356*93caee17SMark Goncharov 357*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_round_vscale_f32(<vscale x 4 x float> %in) { 358*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_round_vscale_f32( 359*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 360*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float> [[IN]]) 361*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 362*93caee17SMark Goncharov; 363*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float> %in) 364*93caee17SMark Goncharov ret <vscale x 4 x float> %1 365*93caee17SMark Goncharov} 366*93caee17SMark Goncharov 367*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_sin_vscale_f64(<vscale x 2 x double> %in) { 368*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_sin_vscale_f64( 369*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 370*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_sindx_u10rvvm2(<vscale x 2 x double> [[IN]]) 371*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 372*93caee17SMark Goncharov; 373*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.sin.nxv2f64(<vscale x 2 x double> %in) 374*93caee17SMark Goncharov ret <vscale x 2 x double> %1 375*93caee17SMark Goncharov} 376*93caee17SMark Goncharov 377*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_sin_vscale_f32(<vscale x 4 x float> %in) { 378*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_sin_vscale_f32( 379*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 380*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_sinfx_u10rvvm2(<vscale x 4 x float> [[IN]]) 381*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 382*93caee17SMark Goncharov; 383*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.sin.nxv4f32(<vscale x 4 x float> %in) 384*93caee17SMark Goncharov ret <vscale x 4 x float> %1 385*93caee17SMark Goncharov} 386*93caee17SMark Goncharov 387*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_sqrt_vscale_f64(<vscale x 2 x double> %in) { 388*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_sqrt_vscale_f64( 389*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 390*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @Sleef_sqrtdx_u05rvvm2(<vscale x 2 x double> [[IN]]) 391*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 392*93caee17SMark Goncharov; 393*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.sqrt.nxv2f64(<vscale x 2 x double> %in) 394*93caee17SMark Goncharov ret <vscale x 2 x double> %1 395*93caee17SMark Goncharov} 396*93caee17SMark Goncharov 397*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_sqrt_vscale_f32(<vscale x 4 x float> %in) { 398*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_sqrt_vscale_f32( 399*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 400*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @Sleef_sqrtfx_u05rvvm2(<vscale x 4 x float> [[IN]]) 401*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 402*93caee17SMark Goncharov; 403*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.sqrt.nxv4f32(<vscale x 4 x float> %in) 404*93caee17SMark Goncharov ret <vscale x 4 x float> %1 405*93caee17SMark Goncharov} 406*93caee17SMark Goncharov 407*93caee17SMark Goncharovdefine <vscale x 2 x double> @llvm_trunc_vscale_f64(<vscale x 2 x double> %in) { 408*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @llvm_trunc_vscale_f64( 409*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 410*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double> [[IN]]) 411*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 412*93caee17SMark Goncharov; 413*93caee17SMark Goncharov %1 = call fast <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double> %in) 414*93caee17SMark Goncharov ret <vscale x 2 x double> %1 415*93caee17SMark Goncharov} 416*93caee17SMark Goncharov 417*93caee17SMark Goncharovdefine <vscale x 4 x float> @llvm_trunc_vscale_f32(<vscale x 4 x float> %in) { 418*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @llvm_trunc_vscale_f32( 419*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 420*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = call fast <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float> [[IN]]) 421*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 422*93caee17SMark Goncharov; 423*93caee17SMark Goncharov %1 = call fast <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float> %in) 424*93caee17SMark Goncharov ret <vscale x 4 x float> %1 425*93caee17SMark Goncharov} 426*93caee17SMark Goncharov 427*93caee17SMark Goncharovdefine <vscale x 2 x double> @frem_f64(<vscale x 2 x double> %in) { 428*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 2 x double> @frem_f64( 429*93caee17SMark Goncharov; CHECK-SAME: <vscale x 2 x double> [[IN:%.*]]) #[[ATTR0]] { 430*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = frem <vscale x 2 x double> [[IN]], [[IN]] 431*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 2 x double> [[TMP1]] 432*93caee17SMark Goncharov; 433*93caee17SMark Goncharov %1= frem <vscale x 2 x double> %in, %in 434*93caee17SMark Goncharov ret <vscale x 2 x double> %1 435*93caee17SMark Goncharov} 436*93caee17SMark Goncharov 437*93caee17SMark Goncharovdefine <vscale x 4 x float> @frem_f32(<vscale x 4 x float> %in) { 438*93caee17SMark Goncharov; CHECK-LABEL: define <vscale x 4 x float> @frem_f32( 439*93caee17SMark Goncharov; CHECK-SAME: <vscale x 4 x float> [[IN:%.*]]) #[[ATTR0]] { 440*93caee17SMark Goncharov; CHECK-NEXT: [[TMP1:%.*]] = frem <vscale x 4 x float> [[IN]], [[IN]] 441*93caee17SMark Goncharov; CHECK-NEXT: ret <vscale x 4 x float> [[TMP1]] 442*93caee17SMark Goncharov; 443*93caee17SMark Goncharov %1= frem <vscale x 4 x float> %in, %in 444*93caee17SMark Goncharov ret <vscale x 4 x float> %1 445*93caee17SMark Goncharov} 446*93caee17SMark Goncharov 447*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double>) 448*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float>) 449*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.copysign.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>) 450*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.copysign.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>) 451*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.cos.nxv2f64(<vscale x 2 x double>) 452*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.cos.nxv4f32(<vscale x 4 x float>) 453*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp.nxv2f64(<vscale x 2 x double>) 454*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp.nxv4f32(<vscale x 4 x float>) 455*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp2.nxv2f64(<vscale x 2 x double>) 456*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp2.nxv4f32(<vscale x 4 x float>) 457*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.exp10.nxv2f64(<vscale x 2 x double>) 458*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.exp10.nxv4f32(<vscale x 4 x float>) 459*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.fabs.nxv2f64(<vscale x 2 x double>) 460*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float>) 461*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double>) 462*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float>) 463*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.fma.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>) 464*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.fma.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>) 465*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log.nxv2f64(<vscale x 2 x double>) 466*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log.nxv4f32(<vscale x 4 x float>) 467*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log10.nxv2f64(<vscale x 2 x double>) 468*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log10.nxv4f32(<vscale x 4 x float>) 469*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.log2.nxv2f64(<vscale x 2 x double>) 470*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.log2.nxv4f32(<vscale x 4 x float>) 471*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.maxnum.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>) 472*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.maxnum.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>) 473*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.minnum.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>) 474*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.minnum.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>) 475*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double>) 476*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float>) 477*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.pow.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>) 478*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.pow.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>) 479*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double>) 480*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float>) 481*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double>) 482*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float>) 483*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.sin.nxv2f64(<vscale x 2 x double>) 484*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.sin.nxv4f32(<vscale x 4 x float>) 485*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.sqrt.nxv2f64(<vscale x 2 x double>) 486*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.sqrt.nxv4f32(<vscale x 4 x float>) 487*93caee17SMark Goncharovdeclare <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double>) 488*93caee17SMark Goncharovdeclare <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float>) 489*93caee17SMark Goncharov;. 490*93caee17SMark Goncharov; CHECK: attributes #[[ATTR0]] = { "target-features"="+v" } 491*93caee17SMark Goncharov; CHECK: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) "target-features"="+v" } 492*93caee17SMark Goncharov;. 493