brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 1c37f70 Raw
222 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -o - %s -mtriple=arm64-apple-ios7.0 | FileCheck %s3 4declare float @fabsf(float) readonly5declare double @fabs(double) readonly6 7declare float @llvm.sqrt.f32(float %Val)8declare double @llvm.sqrt.f64(double %Val)9 10declare float @ceilf(float) readonly11declare double @ceil(double) readonly12 13declare float @floorf(float) readonly14declare double @floor(double) readonly15 16declare float @truncf(float) readonly17declare double @trunc(double) readonly18 19declare float @rintf(float) readonly20declare double @rint(double) readonly21 22declare float @nearbyintf(float) readonly23declare double @nearbyint(double) readonly24 25define float @fabs_f(float %v) {26; CHECK-LABEL: fabs_f:27; CHECK:       ; %bb.0:28; CHECK-NEXT:    fabs s0, s029; CHECK-NEXT:    ret30  %r = call float @fabsf(float %v)31  ret float %r32}33 34define float @fsub_f(float %v) {35; CHECK-LABEL: fsub_f:36; CHECK:       ; %bb.0:37; CHECK-NEXT:    fneg s0, s038; CHECK-NEXT:    ret39  %r = fsub float -0.0, %v40  ret float %r41}42 43define float @sqrt_f(float %v) {44; CHECK-LABEL: sqrt_f:45; CHECK:       ; %bb.0:46; CHECK-NEXT:    fsqrt s0, s047; CHECK-NEXT:    ret48  %r = call float @llvm.sqrt.f32(float %v)49  ret float %r50}51 52define float @ceil_f(float %v) {53; CHECK-LABEL: ceil_f:54; CHECK:       ; %bb.0:55; CHECK-NEXT:    frintp s0, s056; CHECK-NEXT:    ret57  %r = call float @ceilf(float %v)58  ret float %r59}60 61define float @floor_f(float %v) {62; CHECK-LABEL: floor_f:63; CHECK:       ; %bb.0:64; CHECK-NEXT:    frintm s0, s065; CHECK-NEXT:    ret66  %r = call float @floorf(float %v)67  ret float %r68}69 70define float @trunc_f(float %v) {71; CHECK-LABEL: trunc_f:72; CHECK:       ; %bb.0:73; CHECK-NEXT:    frintz s0, s074; CHECK-NEXT:    ret75  %r = call float @truncf(float %v)76  ret float %r77}78 79define float @rint_f(float %v) {80; CHECK-LABEL: rint_f:81; CHECK:       ; %bb.0:82; CHECK-NEXT:    frintx s0, s083; CHECK-NEXT:    ret84  %r = call float @rintf(float %v)85  ret float %r86}87 88define float @nearbyint_f(float %v) {89; CHECK-LABEL: nearbyint_f:90; CHECK:       ; %bb.0:91; CHECK-NEXT:    frinti s0, s092; CHECK-NEXT:    ret93  %r = call float @nearbyintf(float %v)94  ret float %r95}96 97define double @fabs_d(double %v) {98; CHECK-LABEL: fabs_d:99; CHECK:       ; %bb.0:100; CHECK-NEXT:    fabs d0, d0101; CHECK-NEXT:    ret102  %r = call double @fabs(double %v)103  ret double %r104}105 106define double @fsub_d(double %v) {107; CHECK-LABEL: fsub_d:108; CHECK:       ; %bb.0:109; CHECK-NEXT:    fneg d0, d0110; CHECK-NEXT:    ret111  %r = fsub double -0.0, %v112  ret double %r113}114 115define double @sqrt_d(double %v) {116; CHECK-LABEL: sqrt_d:117; CHECK:       ; %bb.0:118; CHECK-NEXT:    fsqrt d0, d0119; CHECK-NEXT:    ret120  %r = call double @llvm.sqrt.f64(double %v)121  ret double %r122}123 124define double @ceil_d(double %v) {125; CHECK-LABEL: ceil_d:126; CHECK:       ; %bb.0:127; CHECK-NEXT:    frintp d0, d0128; CHECK-NEXT:    ret129  %r = call double @ceil(double %v)130  ret double %r131}132 133define double @floor_d(double %v) {134; CHECK-LABEL: floor_d:135; CHECK:       ; %bb.0:136; CHECK-NEXT:    frintm d0, d0137; CHECK-NEXT:    ret138  %r = call double @floor(double %v)139  ret double %r140}141 142define double @trunc_d(double %v) {143; CHECK-LABEL: trunc_d:144; CHECK:       ; %bb.0:145; CHECK-NEXT:    frintz d0, d0146; CHECK-NEXT:    ret147  %r = call double @trunc(double %v)148  ret double %r149}150 151define double @rint_d(double %v) {152; CHECK-LABEL: rint_d:153; CHECK:       ; %bb.0:154; CHECK-NEXT:    frintx d0, d0155; CHECK-NEXT:    ret156  %r = call double @rint(double %v)157  ret double %r158}159 160define double @nearbyint_d(double %v) {161; CHECK-LABEL: nearbyint_d:162; CHECK:       ; %bb.0:163; CHECK-NEXT:    frinti d0, d0164; CHECK-NEXT:    ret165  %r = call double @nearbyint(double %v)166  ret double %r167}168 169define float @conv_h_f(half %v) {170; CHECK-LABEL: conv_h_f:171; CHECK:       ; %bb.0:172; CHECK-NEXT:    fcvt s0, h0173; CHECK-NEXT:    ret174  %r = fpext half %v to float175  ret float %r176}177 178define double @conv_h_d(half %v) {179; CHECK-LABEL: conv_h_d:180; CHECK:       ; %bb.0:181; CHECK-NEXT:    fcvt d0, h0182; CHECK-NEXT:    ret183  %r = fpext half %v to double184  ret double %r185}186 187define half @conv_f_h(float %v) {188; CHECK-LABEL: conv_f_h:189; CHECK:       ; %bb.0:190; CHECK-NEXT:    fcvt h0, s0191; CHECK-NEXT:    ret192  %r = fptrunc float %v to half193  ret half %r194}195 196define double @conv_f_d(float %v) {197; CHECK-LABEL: conv_f_d:198; CHECK:       ; %bb.0:199; CHECK-NEXT:    fcvt d0, s0200; CHECK-NEXT:    ret201  %r = fpext float %v to double202  ret double %r203}204 205define half @conv_d_h(double %v) {206; CHECK-LABEL: conv_d_h:207; CHECK:       ; %bb.0:208; CHECK-NEXT:    fcvt h0, d0209; CHECK-NEXT:    ret210  %r = fptrunc double %v to half211  ret half %r212}213 214define float @conv_d_f(double %v) {215; CHECK-LABEL: conv_d_f:216; CHECK:       ; %bb.0:217; CHECK-NEXT:    fcvt s0, d0218; CHECK-NEXT:    ret219  %r = fptrunc double %v to float220  ret float %r221}222